Docker Deep Dive · Setup
00 · Setup
Get a current Docker running on your machine — macOS, Windows, or Linux. Ten minutes, once, and every lab in this course works.
1Install (or update!)
Docker moves fast — an install from a year or two ago is missing tools this course uses later. If you installed it a while ago, update now: Docker Desktop menu → Check for Updates, or reinstall fresh.
| OS | get it |
|---|---|
| macOS | Docker Desktop for Mac (pick Apple Silicon or Intel) |
| Windows | Docker Desktop for Windows (WSL 2 backend) |
| Linux | Docker Engine (Desktop optional) |
On macOS and Windows, Docker Desktop quietly runs a small Linux virtual machine — containers are Linux processes, and that VM provides the Linux kernel they share. On Linux, your own kernel does the job directly. You'll feel this once in Lesson 1; otherwise it's invisible.
2Verify
Start Docker Desktop (whale icon in the menu bar / system tray), then — in any terminal (PowerShell is fine on Windows):
docker version
You should see both a Client and a Server section.
If instead you get Cannot connect to the Docker daemon — Docker Desktop
isn't running; start it and retry. Then the classic:
docker run --rm hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
Congratulations — that was a container. Lesson 1 dissects what just happened.
3Get the labs
Every lesson pairs with a folder of runnable labs in the companion repo. Clone it
once; git pull before each lesson (it grows with the course):
git clone https://github.com/pdfarhad/docker-deep-dive.git
cd docker-deep-dive
4Optional: log in to Docker Hub
Anonymous pulls from Docker Hub are rate-limited (per 6 h, per IP). This course stays well under the limit, but a free account removes the worry and is needed later for pushing your own image:¹
docker login
5Troubleshooting
| symptom | fix |
|---|---|
command not found: docker | Desktop installed but the CLI isn't on PATH yet — restart your terminal (Desktop adds it), or reinstall. |
every pull fails with 401 Unauthorized | a stale Docker Hub login is sending expired credentials. docker logout clears it (anonymous pulls work again); docker login whenever you like. |
pulls fail with 429 Too Many Requests | rate limit hit (shared office/campus IP?) — docker login with a free account. |
| daemon never becomes ready | open Docker Desktop's Dashboard; it shows the engine state and error. Troubleshoot → Restart fixes most sulks. |
You're ready when
docker versionshows Client and Server sections.docker run --rm hello-worldprints its greeting.docker-deep-dive/is cloned somewhere you can find it.
Start with P1: The Terminal & the Shell — it assumes nothing but this page.
Stuck?
Bring it to class, or open an issue on the course repo — include your OS, the command you ran, and the full error text.
Sources
- Docker Docs — Docker Hub usage and limits
- Docker Docs — Docker Desktop (install guides per OS)