🎯 About this course
You can already run a Linux machine. This course teaches you to run software in containers on it: what a container really is, how to run a service with ports and settings, how to build small and safe images, how to keep data, how to connect containers and describe a whole system in a file, how to limit and restart them, and how to find out why one fails. Every exercise names who needs it and why, uses a simulated container host that behaves like the real one, and ends with a check of the effective state rather than the command you meant to type.
By the end you will be able to
- Describe what a container is, using processes, namespaces, cgroups and images, and how it differs from a virtual machine.
- Use containers to run services with published ports, settings, logs and exec, and manage images with tags and registries.
- Use volumes and bind mounts to keep data, and back up and restore a volume.
- Write Dockerfiles that build fast with layers and cache, and keep secrets and clutter out of images.
- Create smaller and safer images with multi-stage builds, a non-root user and a health check, and manage releases and rollbacks with version tags.
- Use user-defined networks and Compose to connect containers, and keep private services private.
- Configure memory and processor limits and restart policies, and diagnose an out-of-memory exit.
- Analyse a container that fails by reading its state, exit code, log and settings, and harden containers with least privilege.