Seven tracks
Each one is prose with a live builder and a live runtime beside it. Every claim a lesson makes is a build you can run, and every byte it shows you is one this browser computed rather than measured.
What an image is
0/2What is actually inside the thing you just pushed?
Layers as filesystem diffs rather than folders, whiteouts and why deleting a file makes the image bigger, real digests and the deduplication that falls out of them, tags against digests, and the config — the half of an image that is metadata rather than filesystem.
The cache
0/2Which of these instructions is about to run again?
The invalidation rule, exactly: parent image, instruction text, and for
COPYandADDa checksum of the sources. Then instruction ordering as the whole discipline, whereCOPY . .belongs,.dockerignoreas a cache tool rather than a size tool, and why your CI never hits the cache.Size
0/2Where did the one-point-four gigabytes come from?
The base image decision made honestly, multi-stage and what the final stage is allowed to contain, package manager residue, and the secret that was fetched in layer three and deleted in layer five — along with the audit that finds it.
PID 1 and signals
0/1What does your container do when it is asked to stop?
execform against shell form, forwardingSIGTERM, reaping and the zombie pile in a long-lived container, grace periods, and the container that takes ten seconds to stop — and why the orchestrator gave up on it.Isolation
0/1What is a container hiding, and what is it sharing?
Each namespace and what it hides, what stays shared with the host, root in the container against root on the host, user namespaces, a read-only rootfs, and dropping capabilities instead of running as root.
Limits
0/1Was that a crash or was it the OOM killer?
memory.maxand the kill that looks like a segfault at three in the morning,cpu.maxand the throttling that looks like a slow dependency,pids.max, and requests that are not limits.Reading a generated Dockerfile
lives elsewhereWhat will this build, and what will it ship?
The track the rest exists for. You are handed the Dockerfile and compose file an agent wrote for a stated service, and asked what it rebuilds, what it weighs, what is inside it that should not be, and what it does when stopped. Then you build it and watch.
It lives at /audit
9 lessons. The reading track has none of its own — it is the whole of /audit.