0:00–0:30
Lecture
0:30–1:50
Lab 6A
1:50–2:00
Debrief
0:00 – 0:30Lecture · 30 min

Why containers exist, how they work, and how they differ from VMs

Part 1 — The problem containers solve (7 min)

Part 2 — How containers work (12 min)

Part 3 — Docker architecture (5 min)

Part 4 — Week 6 arc (6 min)

0:30 – 1:50Lab 6A · 80 min

Lab 6A — Install Docker, run first containers, manage images, interactive and detached modes

Part 1 — Install Docker (10 min)

Part 2 — First containers (20 min)

Part 3 — Interactive containers (25 min)

Part 4 — Doom in Docker (25 min)

Lab 6A complete when: Docker installed and user added to docker group. hello-world pulled, run, and cleaned up. busybox run interactively, detached with CTRL-P+Q, reattached, and cleaned up. docker exec -it demonstrated. Port-mapped container running and accessible from browser.
1:50 – 2:00Debrief · 10 min

Learning outcomes — by end of Day 1, students can…

Explain containers vs VMsDescribe how namespaces and cgroups implement isolation, and why containers start faster and use fewer resources than VMs
Install Docker and verify itInstall docker.io, interpret docker info output, and add a user to the docker group
Run and manage containersPull images, run named and anonymous containers, list with docker ps, remove containers and images
Use interactive and detached modesRun with -it, detach with CTRL-P+Q, reattach with docker attach, exec into a running container with docker exec -it

Common issues and fixes

IssueLikely causeFix
docker ps returns "permission denied"User not in docker group, or group membership not yet activeRun: sudo usermod -aG docker student. Log out completely and log back in. Verify: groups student — should include docker
docker run hello-world fails with "Unable to find image"No internet access from S1, or Docker Hub unreachableTest: curl https://hub.docker.com. Check NAT routing (ping 8.8.8.8 from S1). Verify /etc/docker/daemon.json doesn't have an incorrect registry mirror
CTRL-P + CTRL-Q not working to detachTerminal emulator intercepting the key sequenceIn Windows Terminal, ensure focus is on the SSH session. Alternatively, use docker exec -it in a second session and work from there instead of the attached session
← Week 6 Overview Lab 6A Handout Day 2 →