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
When: 10:00-16:00 BST, 13 - 14 July 2020. Add to your Google Calendar.
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 should have a few specific software packages installed (listed below). They are also required to abide by the ARCHER2 Training Code of Conduct.
Accessibility: We are committed to making this workshop accessible to everybody.
Materials will be provided in advance of the workshop and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you please get in touch (using contact details below) and we will attempt to provide them.
Contact: Please email email@example.com for more information.
- 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
bashshell (usually the default), using your Terminal application.
- Under Windows, Powershell and Git Bash should allow you to use the Unix instructions.
- As an item of setup, it is assumed that you have a directory named
container-playgroundthat you are able to
cdto using your command shell, and are also able to find using your computer’s graphical file browser (e.g., Finder on macOS or Windows Explorer). A simple way to achieve this is to create your
container-playgrounddirectory within your computer’s
Desktopfolder. (See the Software Carpentry Shell lesson for more details.)
- The lessons will sometimes request that you use a text editor to create or edit files in particular directories. It is assumed that you either have an editor that you know how to use that runs within the working directory of your shell window (e.g.
nano), or that if you use a graphical editor, that you can use it to read and write files into the working directory of your shell.
To get started, follow the directions on the Setup page to ensure you have installed the Docker software, have registered for a Dockerhub account, have an SSH client available and have registered a user account on Cirrus (the HPC facility we will be using for the Singularity part of the course.