This course introduces the use of containers as a means of creating reproducible computational environments. Such environments are essential for ensuring reproducible research outputs and simplifying the deployment of complex software stacks across different systems.
The course focuses on Podman for local container workflows and introduces Singularity/Apptainer for use in high-performance computing (HPC) environments. While specific tools are used for illustration, the concepts and practices covered are broadly applicable across container technologies.
On completion of this course, attendees should be able to:
- Understand what containers are, why they are useful, and the common terminology used
- Use Podman on a local system to run and manage containers
- Use existing container images (e.g. Podman/Singularity/Apptainer) for common tasks
- Build their own containers by understanding container recipes (e.g. Containerfiles and Singularity/Apptainer definition files) and their syntax
- Manage containers effectively on a local system
- Make informed decisions about when and how to containerise research workflows
- Understand the differences between Podman, Singularity and Apptainer, and their respective use cases, particularly in HPC environments
- Appreciate challenges in software reproducibility, understand how containers can address these issues, and recognise their limitations
Schedule
The course is delivered over two days; however, participants may attend a single day if preferred, provided this is indicated during registration. The second day is particularly relevant for users interested in Singularity/Apptainer in HPC contexts.
- Day 1: Introduction to Podman
- Day 2: Introduction to Singularity/Apptainer
Requirements:
Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on.
They are also required to abide by the ARCHER2 Code of Conduct.
Timetable:
Details to follow