Containers

  • Containers are packages containing all the elements needed to run a process in any computing environment.
  • This allows for the portability of code between different computers, from your laptop to a Nimbus instance or Topaz.
  • They also support the reproducibility of results that depend on specific software versions.
  • Loosely speaking, a container replaces the ‘userland’ of the host operating system with ‘userland’ on another operating system - which has access to the devices and computes the power of the host device.
  • There is some performance overhead associated with containers.
  • But for short-to-medium-term projects (like an internship!) time saved troubleshooting is well worth the tradeoff.