Introduction to Docker and Podman

An introduction to using Docker and Podman as software development tools.

Originally developed by Matthew Feickert for the 2019 USATLAS Computing Bootcamp at LBNL.


Basic knowledge of the Unix Shell, e.g., from the carpentry course

HSF Software Training

HSF Logo
This training module is part of the HSF Software Training Center, a series of training modules that serves HEP newcomers the software skills needed as they enter the field, and in parallel, instill best practices for writing software.


Setup Download files required for the lesson
00:00 1. Introduction What are containers?
What is Docker and Podman? What are the differences?
00:10 2. Pulling Images How are images downloaded?
How are images distinguished?
00:25 3. Running Containers How are containers run?
How do you monitor containers?
How are containers exited?
How are containers restarted?
00:45 4. File I/O with Containers How do containers interact with my local file system?
01:05 5. Coffee break Coffee or tea?
01:20 6. Writing Dockerfiles and Building Images How are Dockerfiles written?
How are images built?
02:00 7. Removal of Containers and Images How do you cleanup old containers?
How do you delete images?
02:10 8. Using CMD and ENTRYPOINT in Dockerfiles How are default commands set in Dockerfiles?
02:35 9. Bonus Episode: Building and deploying a Docker container to Github Packages How to build a Docker container for python packages?
How to share Docker images?
03:15 Finish

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


The following people contributed to the content of this lesson: Note that this list does not include the contributors to the framework as developed by the carpentries.