This course aims to introduce the use of containers with the goal of using them to effect reproducible computational environments. Such environments are useful for ensuring reproducible research outputs and for simplifying the setup of complex software dependencies across different systems. The course will mostly be based around the use of Docker containers but the material will be of use for whatever container technology you plan to, or end up, using. We will also briefly introduce the Singularity container environment which is compatible with Docker and designed for use on multi-user systems (such as HPC resources). On completion of this course attendees should:
- Understand what containers are and what they are used for
- Understand how to manage and create Docker containers
- Appreciate decisions that need to be made around containerising research workflows
- Understand the differences between Docker and Singularity containers and why Singularity is more suitable for multi-user systems (e.g. HPC)
- Understand how to manage and create Singularity containers
- Appreciate how containers can be used to enable and improve reproducibility in research
Location: This course will be run primarily as a remote attendance course but depending on how the current situation evolves over the coming weeks, there may also be an opportunity to attend the training in person at Imperial College London’s South Kensington Campus. We will advise whether in-person attendance is possible in mid June.
Target Audience: This course is aimed at researchers who have no (or very little) previous experience of using containers.
- You should have basic familiarity with using a command shell, and the lesson text will at times request that you “open a shell window”, with an assumption that you know what this means.
- Under Linux or macOS it is assumed that you will access a bash shell (usually the default), using your Terminal application.
- Under Windows, Powershell and Git Bash should allow you to use the Unix instructions. We will also try to give command variants for Windows
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.
This course is part-funded by the PRACE project and is free to all.