Beginner to intermediate · Free · In your browser

Learn Docker & Containers

Learn images and container lifecycles, write Dockerfiles, design Compose services and persistence, and diagnose configuration mistakes. Two projects bring build, networking, health, and storage together. All execution here is a bounded in-memory model, not a Docker engine.

20 lessons6 modules4.4 hours of practice4 challenges
Start the Docker & Containers course →

No installation. Your code runs right in the browser. Basic Linux commands and Git. This course models Dockerfile instructions, selected Docker commands, and Compose configuration; it does not build or run real containers.

What you will be able to do

Course outline

Module 1

Containers and access

Understand instances, port bindings, and diagnostic evidence.

  1. An image is a recipe, a container is an instanceImages, tags & containers · 9 min
  2. Publish a port deliberatelyContainer ports & host bindings · 12 min
  3. Read logs before restartingLogs, inspect & lifecycle · 12 min
Module 2

Build an image contract

Choose inputs, caching boundaries, configuration, and process identity.

  1. Choose a base and a working directoryFROM & WORKDIR · 12 min
  2. Cache dependencies before copying sourceCOPY order & build cache · 12 min
  3. Separate configuration from privilegesENV & USER · 12 min
Module 3

Persistence and a first project

Separate storage and networks, define health, and assemble an image.

  1. Keep runtime data outside the writable layerNamed volumes · 12 min
  2. Give related services a shared networkUser-defined networks · 12 min
  3. Describe a useful health signalHEALTHCHECK & application readiness · 12 min
  4. Project: a production-minded application imageProject · build order & runtime boundaries · 22 min
Module 4

Artifact and stack design

Use build stages, release tags, and declarative services.

  1. Leave build tools in a build stageMulti-stage builds · 12 min
  2. Use a release tag you can traceImage tags & registry identity · 12 min
  3. Declare two services with Composecompose.yaml & service names · 12 min
Module 5

Readiness and runtime boundaries

Declare dependencies, volumes, and writable paths.

  1. Wait for a useful dependency statedepends_on & health conditions · 12 min
  2. Declare persistent Compose storageTop-level volumes · 12 min
  3. Reduce writable runtime surfacesread_only & process user · 12 min
Module 6

Operate a complete stack

Set resource and network boundaries, repair faults, and finish a stack.

  1. Apply resource limits consciouslyCPU & memory boundaries · 12 min
  2. Separate front and back networksCompose network segmentation · 12 min
  3. Repair a reversed port mappingTroubleshooting configuration · 12 min
  4. Capstone: a recoverable application stackCapstone · Compose, storage & readiness · 28 min

Ready for your first line?

Every lesson is short, hands-on, and checked automatically.

Start learning Docker & Containers →