GWDG Pilot Module Containers

Containers are used very heavily these days and provide a lot of capabilities. Their popularity is not just hype (though there is definitely some hype added on), they can be very useful though they are not the right tool for every job. Containers are used for many things such as

  • Having a consistent (and hopefully reproducible) environment for building, testing, running, etc. software

  • Some portability between machines by bringing most dependencies with you

  • Isolating software from the underlying system or other containers

  • Simplifying deployment in some cases

  • Building OS images for network booting

There are numerous container ecosystems that come and go, which use the same underlying mechanisms. If you understand the underlying mechanisms and how to implement them yourself, then learning new container ecosystems and tooling becomes easier meaning if one disappears a year or two later, you didn’t waste much time learning that specific one and can easily learn the next one. So, this module will focus on the fundamentals and the underlying mechanisms.

Prerequisites

  • Access to a working Linux system where you have root level access, whether a local install on your own machine or a VM

  • Basic understanding of the Linux command-line

  • Basic understanding of how to install packages on your Linux system

  • Basic understanding of Linux permission system (users, groups, file ownership, file permissions)

  • Basic understanding of POSIX shells (Bash, Zsh, etc.)

Preparations Before Lessons

You must complete these preparations before the lessons. Otherwise, you will be lost and unable to complete them and the instructor will have to leave you behind.

Lessons

Container Intro And Low-Level Containers

Learning outcomes

This material is for understanding containers at a fundamental level rather than just learning one or two ecosystems. By the end of this module, learners should:

  • Know what a container, container image, and image are and their subtle differences

  • Be able to implement many of the basic features and underlying mechanisms of containers to run their own containers without a container ecosystem

  • Understand the basic features and underlying mechanisms of containers well enough to be able to teach themselves new container ecoystems and understand their documentation

  • Know when to use containers, and when not to (right tool for the right job)

See also

Credit

  • Author: Freja Nordsiek (Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen)

  • License: CC BY-SA 4.0 and MIT (also known as Expat)

  • Contributing and error reporting: Please send an email to hpc-support@gwdg.de

License