Introduction to Docker (November 2015)


NOTE: This tutorial was last updated in 2015. Docker and the best practices for using it have changed a lot since then.

If you are trying to learn Docker, I recommend finding another tutorial which has been updated in the past year.

This three hour workshop will take you from “Hello Docker” to deploying a containerized web application to a server. It’s going to be a lot of fun!


If you want more background on Docker before jumping in, it might be helpful to view the 30 minute talk I gave about Docker at PyCon this year.



There are no specific skills needed for this tutorial beyond a basic comfort with the command line and using a text editor.


There are a few things you should know about this tutorial before we begin.

This tutorial is designed to be self-paced to make the most of your time.

The exercises won’t always tell you exactly what you need to do. Instead, I will point you to the right resources (like documentation and blog posts) to find the answer. I prefer this approach because it helps prepare you to find answers about Docker questions after the tutorial is over.

Getting help

This is a big tutorial session, so I have set up chat rooms with Gitter, a chat service that uses your GitHub account to log in.

The chat room linked below should be used for general questions and comments about the tutorial:

Join that chat room now. I will also link to exercise-specific chat rooms as you go through the tutorial.

Please don’t be shy about asking questions in the Gitter chat rooms or to your neighbors!

Ready to begin?

Head to Exercise 0: Getting started.