This lesson is being piloted (Beta version)

Introduction to Docker

An opinionated introduction to using Docker as a software development tool. Presented at the February 2020 Analysis Preservation Bootcamp at CERN.

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


A computer with Docker installed on it


Setup Download files required for the lesson
00:00 1. Introduction What are containers?
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. Writing Dockerfiles and Building Images How are Dockerfiles written?
How are Docker images built?
01:35 6. Removal of Containers and Images How do you cleanup old containers?
How do you delete images?
01:45 7. Coffee break Coffee or tea?
02:00 8. Gitlab CI for Automated Environment Preservation How can gitlab CI and docker work together to automatically preserve my analysis environment?
What do I need to add to my gitlab repo(s) to enable this automated environment preservation?
02:45 9. Running our Containerized Analysis How do I run my full analysis chain inside docker containers?
03:30 10. Optional: Running Containers on LXPLUS Using Singularity How can I run a container on LXPLUS?
03:45 11. Bonus: Using CMD and ENTRYPOINT in Dockerfiles How are default commands set in Dockerfiles?
03:45 12. Challenge Examples How to do a few more things?
04:05 Finish

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