Docker
Containers from first principles to production images, networks, and volumes.
“Duolingo for DevOps. One concept = one 2-4 minute video. Never introduce a concept before its prerequisites. Every lesson builds on the last.”
12 / 47 lessons readyaudience: developers & devops47 lessons planned
1. Docker
47 lessonsContainers are the fundamental packaging unit of modern deployment. Everything after (Kubernetes, CI/CD, Helm) assumes you understand what a container is and why it matters.
Why Docker Exists
The Dockerfile
- Your first Dockerfile2m 31sWatch →
- FROM, RUN, COPY — the essentials3m 04sWatch →
- WORKDIR and ENV2m 49sWatch →
- CMD vs ENTRYPOINT3m 05sWatch →
- EXPOSE and LABEL2m 31sWatch →
- Multi-stage builds — smaller images4m 00sComing soon
Running Containers
- docker run — the anatomy3m 09sWatch →
- docker ps, stop, rm2m 39sWatch →
- docker exec — getting a shell in a container3m 00sComing soon
- docker logs — reading container output2m 30sComing soon
- docker inspect — the full metadata dump3m 00sComing soon
Volumes and Data
- Volumes — data that outlives the container3m 00sComing soon
- Bind mounts vs named volumes3m 30sComing soon
- Volume drivers3m 30sComing soon
- Backing up volumes3m 30sComing soon
- tmpfs mounts3m 00sComing soon
Docker Networks
- Docker networks — the big picture3m 30sComing soon
- Bridge network — the default3m 30sComing soon
- Host network mode3m 00sComing soon
- Overlay networks4m 00sComing soon
- -p and port publishing3m 00sComing soon
Docker Compose
- What is docker-compose?3m 00sComing soon
- services — the compose primitive3m 00sComing soon
- How compose wires networks3m 30sComing soon
- Volumes in compose3m 00sComing soon
- Env files and .env3m 00sComing soon
- depends_on — startup order3m 00sComing soon
- Compose profiles3m 00sComing soon
Registries and Distribution
- Docker Hub — the default registry3m 00sComing soon
- docker login and docker push3m 00sComing soon
- Running a private registry3m 30sComing soon
- Image tags and semver discipline3m 30sComing soon
- Image signing — verifying what you pull4m 00sComing soon
Best Practices and Security
- Slimming an image — alpine, distroless3m 30sComing soon
- Non-root user in containers3m 00sComing soon
- Read-only filesystems3m 30sComing soon
- Image vulnerability scanning3m 30sComing soon
- Never bake secrets into images3m 30sComing soon
- CPU and memory limits at runtime3m 30sComing soon
- HEALTHCHECK — proving your container is alive3m 30sComing soon
- Mini project: containerize a Node app5m 00sComing soon