Research IT

Intro to Docker: an interactive training event

To help researchers adopt modern software architectures and enable them to use the vast range of existing containerised tools, our Research Software Engineers have developed an interactive course which introduces the basics of container usage.


Last year our group embarked on an ambitious project to develop a fully interactive training course focused on containerisation, an increasingly popular and powerful tool in software development. With the goal of up-skilling our community, we designed the material to be hands-on and engaging, ensuring that participants could immediately apply their new skills in real-world projects. After months of development and refinement, we piloted the course within our team at the end of 2024 — and the results were nothing short of remarkable.

What is in the course?

The "Introduction to Docker" course is designed to equip participants with essential containerisation skills.

Why Containers? Containers ensure that software runs reliably by packaging all necessary libraries and dependencies in a consistent environment. They also enable a microservices approach, making applications more modular, scalable, and easier to manage.

Why Docker? Docker is the industry-standard tool for containerisation, known for its maturity and ease of use, as well as the millions of readily available container images. Learning Docker provides a solid foundation for exploring other container technologies, making it the perfect starting point for our training.

Designed to be delivered over two half days, the course covers the following key topics:

  • Getting Started with Docker: Learning what containers are, how to use them, and why they are essential in modern software development. We illustrate the use of "off-the-shelf" container images with SPUC, developed specifically for the course, themed around aiding the conservation of "Space Purple Unicorns".
  • Building and Running Containers: Hands-on experience in modifying existing images, as well as allowing participants to create their own. Participants are guided through the process of adapting the SPUC image, adding new features and functionality. Then, we demonstrate how to build and run containers from the modified image.
  • Docker Compose: We explore how multi-container services are orchestrated, so participants can dive into the micro-services architecture. Following the SPUC theme, participants craft a docker compose stack to deploy a full application, with a website front-end and the container they've built upon in the back-end.

A successful pilot

The pilot program showed that participants quickly mastered the fundamentals of Docker. The interactive nature of the course allowed our team to dive right into practical exercises, building confidence and competence in using containers to enhance software reliability and streamline development processes.

Before the course I interacted with Docker on a ‘What is the minimum knowledge I need to get task X done’ basis. This course provided me with the fundamentals in a very structured and logical way and that doing a fun practical project. There was good interactions with and questions from the audience which the trainers answered with great understanding.
I highly recommend attending this course to anyone who is looking into developing code for publishing in a container.


Anja Le Blanc, Research Software Engineer

The course was invaluable to give me a solid understanding of Docker and Docker Compose. Not only that, it was interesting and insightful, and we’ve already implemented ideas we had during the session to improve our own LLM server


Pete Morris, Software Developer

As a self-taught learner, I found the Docker training course incredibly valuable. The flow of the course was seamless, starting with Docker Desktop and transitioning to the Command Line Interface (CLI), iterating and expanding on what was learnt previously. This progression helped me understand the practical applications and advantages of each method, while demonstrating the power of what Docker can do. Each new idea was a "Aha!" moment. The course content was intuitive, answering many of my questions even without an instructor present. By the end, I felt confident and prepared to integrate Docker into my project work. This training has truly enhanced my skills and understanding of Docker.


Josh Woodcock, Research Software Engineer

Who is the course for?

Researchers wanting to take a modern approach to their software architecture or looking to enhance their software development skills will benefit most from this course. Participants only looking to understand the basics of Docker will find the course accessible, and it should get them ready to start using containers after the first day. Those looking to learn more advanced containerisation concepts, and how to integrate containers into their software development workflow, will find the course equally valuable. No prior experience with Docker is required, but a basic understanding of bash commands is needed.

If you think this course could be beneficial to you or your team, you can follow the online material yourself, register for the 6-7 October session, or keep an eye out on our BlueSky and newsletter for upcoming dates.