Before you can play with containers, Docker has to be installed and running. This module guides you to the right choice for your OS — then we test it right away.
Which one: Docker Desktop or Docker Engine?
- Docker Desktop — the complete application (engine + GUI + CLI) for Windows and macOS; also available for Linux desktops. The default choice for learning on a laptop.
- Docker Engine — engine + CLI only, no GUI, runs natively on Linux. This is what usually goes on servers.
Tip: For this course, use Docker Desktop if you're on Windows/macOS, and Docker Engine if you're on a Linux server/VM. Every command in this course is identical on both.
Download from the official page: https://docs.docker.com/get-docker/ — nowhere else.
Installing on Windows — WSL2 required
Docker Desktop on Windows runs on top of WSL2 (Windows Subsystem for Linux). The installer usually enables it automatically, but if it fails:
wsl --install # enable WSL2 (run as Administrator, then restart)
wsl --version # confirm WSL version 2.x is installed
If you hit a virtualization error, first enable virtualization (Intel VT-x / AMD-V) in BIOS/UEFI — the most common installation blocker on Windows.
Installing on macOS — check your chip
There are two Docker Desktop installers for macOS: Apple Silicon (M-series) and Intel. Download the one matching your chip — check under the Apple menu → About This Mac.
Most popular images (node, postgres, nginx) are multi-arch, so they run fine on both. If you ever hit an exec format error, that's an architecture issue — the fix is in the Troubleshooting appendix.
docker version & docker info — make sure the engine is alive
docker version # client + server (engine) versions; if the server shows up, the engine is alive
docker info # full details: container count, images, storage driver
If you see Cannot connect to the Docker daemon, the engine isn't running yet — open the Docker Desktop app first (or sudo systemctl start docker on a Linux server).
docker run hello-world — the first test
docker run hello-world
Watch what happens behind the scenes (it's also written in the output): Docker can't find the hello-world image locally → pulls it automatically from Docker Hub → creates a container → runs it → prints a success message. Those four steps are Module 2's flow working right before your eyes.
Summary
| Situation | Choice |
|---|---|
| Windows laptop | Docker Desktop (on top of WSL2) |
| macOS laptop | Docker Desktop (match your chip: Apple Silicon / Intel) |
| Linux server / VM | Docker Engine |
| Check the engine is alive | docker version, docker info |
| Test the install | docker run hello-world |
Next, we run a real container — and dissect the anatomy of docker run, flag by flag.