learn docker in your terminal, with bite sized exercises
  • Shell 48.5%
  • Go 43%
  • Dockerfile 4%
  • Python 3.7%
  • HTML 0.8%
Find a file
2026-03-22 13:32:42 +03:00
cmd/dockerlings fix: unbound bash variables 2025-11-17 16:50:52 +03:00
exercises Introduce verbose failure for port mismatch on core 13 and 14 exercises (#30) 2026-03-22 13:32:42 +03:00
internal fix: unbound bash variables 2025-11-17 16:50:52 +03:00
.gitignore initialize repo 2025-11-17 13:01:24 +03:00
dockerlings.toml add ex. 14 & 15 to TUI config (#11) 2025-12-05 07:29:19 +03:00
go.mod dev: go.mod & go.sum 2025-11-17 13:06:25 +03:00
go.sum dev: go.mod & go.sum 2025-11-17 13:06:25 +03:00
LICENSE Update LICENSE 2025-11-28 19:33:39 +03:00
README.md update instructions to provide the .exe extension for windows (#28) 2026-03-22 13:15:26 +03:00

Dockerlings

Learn Docker by doing the fun, interactive way

discord


asciicast


  • 100% interactive TUI Beautiful terminal interface powered by Bubble Tea
  • Instant verification Run check and know immediately if you're right
  • Progressive curriculum 15+ carefully crafted exercises that build on each other
  • Real-world skills From basic images to multi-stage builds, volumes, networks, and Compose
  • Zero friction Just clone, build, and start learning

What you'll master

Exercise Youll learn
core-0104 Running containers, logs, exec, file operations
core-0507 Writing Dockerfiles, COPY, EXPOSE, ENV, LABEL
core-0809 Persistent volumes & live-reloading bind mounts
core-1011 Container networking and port publishing
core-1214 Docker Compose, multi-service apps, named volumes, custom networks
core-15 Multi-stage builds for tiny, secure production images

Get started in 30 seconds

You need go and docker installed.

git clone https://github.com/furkan/dockerlings.git
cd dockerlings
go build -o bin/dockerlings$(go env GOEXE) ./cmd/dockerlings
./bin/dockerlings$(go env GOEXE) watch

Use ↑↓ to navigate • c to check your solution • h for hints • q to quit

Test a solution manually (optional)

cd exercises/core-01
bash check.sh   # see detailed feedback

Made for

  • Beginners who want to understand Docker commands
  • Intermediate devs preparing for real-world container workflows
  • Anyone who learns best by breaking and fixing things