Reproducible computational environments using containers


This session aims to introduce the use of Docker containers with the goal of using them to effect reproducible computational environments. Such environments are useful for ensuring reproducible research outputs, for example.


Please use the ARCHER course registration form to sign up for the workshop.

This course is supported by the ARCHER UK national supercomputing service and is free to all academic attendees.

General Information

Where: Collingwood College, University of Durham, South Road, DH1 3LT (training room on 1st floor above reception). Get directions with OpenStreetMap or Google Maps.

When: 10:30-16:00, 3 February 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 ARCHER Training Code of Conduct.

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organizers have checked that:

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 (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Contact: Please email 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 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 cmd.exe.
  • As an item of setup, it is assumed that you have a directory named container-playground that you are able to cd to 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-playground directory within your computer’s Desktop folder. (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.

Getting Started

To get started, follow the directions on the Setup page to ensure you have a Docker Hub account and the Docker software installed.


Setup Download files required for the lesson
10:30 1. Introducing containers What are containers, and why might they be useful to me?
11:10 2. Introducing the Docker command line How do I interact with Docker?
11:30 3. Coffee Break Break
12:00 4. Creating containers How do I get Docker to perform computation?
12:40 5. Visiting the Docker Hub What is the Docker Hub, and why is it useful?
13:00 6. Lunch Break
14:00 7. Creating your own container images How can I make my own Docker images?
14:45 8. Example: Containers used in generating this lesson What is a specific example of a container used in practice?
15:05 9. Tea Break Break
15:35 10. Using containers to improve reproducibility How can I use container images to make my research more reproducible?
15:55 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.