FREE COURSE / REAL PRACTICE
From Linux processes to containers
Package and review a tiny Python service through processes, images, build inputs, argv, ports, configuration, storage and lifecycle. Graded work uses honest offline fixtures.
What you’ll work toward
Validate explicit container packaging and launch contracts, distinguish process/image and storage/network boundaries, and audit a tiny-service release profile. Does not establish Docker runtime operation, isolation or production readiness.
Read an explanation, inspect the diagrams and work through the available checks, debugging exercises and builds. Feedback and prerequisite links guide the next step.
Before you start
This course builds on these skills:
Individual lessons can add prerequisites. The course map shows your actual readiness.
A look inside the first lesson
Processes, images and container instances
records = [
{"name": "web", "image": "app:v1", "pid": 42},
{"name": "migration", "image": "app:v1", "exit_code": 0},
{"name": "next", "image": "app:v1"},
]
for record in records:
pid, code = record.get("pid"), record.get("exit_code")
state = "running" if pid is not None else "exited" if code is not None else "created"
print(record["name"], state)Your course outline
Follow the lessons in curriculum order. Open a unit to preview the ideas you’ll work with.
Container foundations and image construction
- LESSON 01.01
Processes, images and container instances
Build an honest inventory that separates reusable image identity from process state and exit status.
Open lesson - LESSON 01.02
Build context, Dockerfiles and reusable layers
Select build inputs by path boundaries and model why an early changed instruction invalidates a sequential cache suffix.
Open lesson - LESSON 01.03
Executable arguments and entrypoints
Compose exec-form ENTRYPOINT and CMD without shell splitting, expansion or accidental loss of empty arguments.
Open lesson
Runtime boundaries: ports, configuration and data
- LESSON 02.01
Ports and network boundaries
Validate explicit host-to-container port mappings and reason about the separate application listener.
Open lesson - LESSON 02.02
Environment, configuration and secret boundaries
Merge explicit runtime configuration, validate values and report secret references without exposing secret bytes.
Open lesson - LESSON 02.03
Writable layers, volumes and mount boundaries
Resolve a path to the most specific mount and distinguish disposable writes from independently managed persistent data.
Open lesson
Lifecycle and integrated packaging review
- LESSON 03.01
Signals, health and application lifecycle
Keep process state and health separate while modeling graceful stop, bounded failure probes and forced termination.
Open lesson - LESSON 03.02
Capstone: package and audit a tiny service
Audit a real, deliberately narrow Dockerfile profile together with build inputs and runtime configuration.
Open lesson