From installing Docker through images and containers, ports and networks, volumes, Dockerfiles, multi-stage builds, registries, Docker Compose and troubleshooting. Twenty lessons that take you to the point where you can bring up a development environment from a single compose.yaml — and work out for yourself what is wrong when it will not start. Every command and its output was produced by actually running it.
The 20 lessons are grouped into five chapters. Working through them in order is the best way, but you are welcome to dip into whatever interests you. Note: Docker commands cannot run inside the browser. Install Docker Desktop (or Podman or Colima) and try them in your own terminal as you follow along.
You sort out what Docker is for by contrasting it with virtual machines, then cover the four foundations: images, containers, ports and volumes. By the end, data you cannot afford to lose lives outside the container.
You write a Dockerfile and build an image with your own app inside it. Once you understand layers and the build cache, builds go from minutes to seconds and image sizes drop by an order of magnitude.
You tag your image and push it to a registry, then move on to compose.yaml. Instead of starting containers one at a time by hand, you bring several services up together.
You add what a day-to-day development environment needs: start-up order, health checks, hot reload. Finally you turn "where do I look when it will not work?" into a routine you can follow.
You clear out accumulated images and volumes and configure containers to run safely. The chapter closes by looking back over the course and mapping out what lies beyond it.
Once you have finished all 20 lessons, look at Linux — the server your containers run on — or shore up your defences before going live with Python Security. Membership unlocks every course.