Introduction to Software Containers

Why use software containers?

  • Simple Containers simplify software installation and management.
  • Portable You can build an image on one machine and run it on another.
  • Reproducible Versioning and freezing of containers enable data reproducibility.



  • share the OS kernel of the host
  • virtualize the OS instead of hardware
  • have much less overhead and faster deployment than a VM

Singularity is designed for HPC

  • Does not require sudo privilege to run (unlike Docker)
  • Interoperates well with HPC resource managers in multi-node environments
  • Easily makes use of GPUs, high speed networks, parallel filesystems
  • Able to convert Docker images into Singularity