Containers From Scratch - Beginner to OSS Contributor¶
From "I have heard of Docker" to "I can write a Dockerfile, debug a running container, read someone else's compose stack, and submit a fix to a containerized OSS project."
Who this is for¶
- You're comfortable enough in a terminal to follow instructions.
- You've never used Docker, OR you've copy-pasted
docker runanddocker buildwithout really understanding what they do.
Soft prerequisite¶
If terminals still feel alien, do Linux From Scratch first - at least pages 01-08. This path assumes you can cd, run commands, read errors, and edit a file.
What you'll need¶
- Docker Desktop (macOS / Windows / Linux), OR Podman, OR Docker Engine on Linux.
- A text editor.
- A terminal.
- About 5 hours/week. Path is sized for 3-4 months.
Why containers¶
- You'll ship software in containers. Every modern cloud, every modern infrastructure team, every modern deployment pipeline.
- They abstract over OS differences. "Works on my machine" mostly stops being a problem.
- OSS adoption is massive. Almost every popular OSS project today ships a Docker image. Knowing the container side lets you contribute to many of them.
How this path works¶
Each page does one thing: explains it, shows it, walks through it, gives an exercise, ends with a Q&A.
The pages¶
| # | Title | What you'll know after |
|---|---|---|
| 00 | Introduction | What we're doing and why |
| 01 | Setup | Docker installed; first container run |
| 02 | Running containers | docker run, common flags |
| 03 | Images and tags | What an image is; pulling from registries |
| 04 | Container lifecycle | ps, stop, rm, exec, logs |
| 05 | Building images with Dockerfile | FROM, COPY, RUN, CMD |
| 06 | Volumes and bind mounts | Persistent data |
| 07 | Networks and ports | Container-to-container, container-to-world |
| 08 | Docker Compose | Multi-container apps in one file |
| 09 | Slimming images | Multi-stage, distroless, .dockerignore |
| 10 | Security basics | Non-root, read-only, capabilities |
| 11 | Image registries | Docker Hub, GHCR, push and pull |
| 12 | Reading other people's Dockerfiles | The bridge |
| 13 | Picking a project | What "manageable" looks like |
| 14 | Anatomy of a containerized OSS project | Case study |
| 15 | Your first contribution | Workflow + PR |
Start with Introduction.
Print this path
Want to read offline or archive? Open the printable version — every section of this path concatenated into one page, styled for paper. Use your browser's Print → Save as PDF.