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
This course is based on the original containers course that was originally run at "ResBaz Dunedin 2019".
This is not an official Carpentries lesson, but the Carpentries lesson template is excellent, so we are using it.
We welcome all contributions to improve the lesson! Maintainers will do their best to help you if you have any questions, concerns, or experience any difficulties along the way.
We'd like to ask you to familiarize yourself with our Contribution Guide and have a look at the more detailed guidelines on proper formatting, ways to render the lesson locally, and even how to write new episodes.
- David Eyers, University of Otago, NZ
- Sarah Stevens
- Andy Turner, EPCC, The University of Edinburgh, UK
- Jeremy Cohen, Imperial College London, UK
A list of contributors to the lesson can be found in AUTHORS
To cite this lesson, please consult with CITATION