3 lessons
Why containers exist
The deployment problem containers were built to solve, told through what came before them.
Namespaces and cgroups: how isolation actually works
The two Linux kernel features that make containers possible, explained without hand-waving.
Docker's architecture — daemon, client, and registries
How the docker command, the background daemon, and image registries fit together.