Practice brief

The Container Concept Exercises

Before any Docker work, get your environment ready. Install Docker, clone the TaskFlow Lab repository from GitHub, and confirm the app runs on your machine. This is the baseline everything else builds on.

Build from scratch

1.1 Build from scratch
~25-35 min

Set Up Your Lab Environment

Every exercise in this course runs against TaskFlow Lab — a Node.js application that starts with no Docker setup and gains Docker features module by module. Before Module 2 you need two things in place: Docker running on your machine, and TaskFlow Lab cloned from GitHub and working locally. This exercise gets both done. It is the only setup step before the rest of the course begins.

Try it yourself first. Open the guided path if you get blocked.

Step 1 — Install Docker

macOS and Windows: download and install Docker Desktop from docker.com/products/docker-desktop. Linux: follow the Docker Engine install guide for your distribution at docs.docker.com/engine/install. After installation, start Docker Desktop on macOS or Windows. On Linux, verify the daemon is running with sudo systemctl status docker.

Step 2 — Verify Docker is running

docker --version
docker info

docker --version confirms the CLI is installed. docker info confirms the daemon is reachable. If docker info hangs or errors, Docker Desktop has not finished starting — look for the whale icon in your menu bar and wait for it to stop animating before retrying.

Step 3 — Run hello-world

docker run hello-world

This pulls a small test image, runs it, prints a confirmation message, and exits. It proves Docker can pull images from Docker Hub and run containers on your machine. If this passes, Docker is fully operational.

Step 4 — Choose where the lab repo will live

mkdir -p ~/learndocker-labs
cd ~/learndocker-labs

Keep the lab repo somewhere stable, not inside this website repo and not inside a temporary downloads folder. The examples below use ~/learndocker-labs, but any normal projects directory is fine.

Step 5 — Clone TaskFlow Lab from GitHub

git clone https://github.com/learn-devops-sre/taskflow-lab.git
cd taskflow-lab

This downloads the public TaskFlow Lab repository to your machine. This is the application you will containerise across all fourteen modules. Keep the cloned directory in place because every exercise from Module 2 onwards runs inside it.

Step 6 — Install dependencies and verify the app runs locally

npm install
npm run verify:local

npm install downloads the Node.js packages TaskFlow needs. npm run verify:local starts the API, checks that it responds, and exits cleanly. If it passes you are ready for Module 2. If it fails, check your Node.js version — TaskFlow requires Node 20 or newer. Run node --version to confirm.