learn docker in your terminal, with bite sized exercises
  • Shell 48.9%
  • Go 42.7%
  • Dockerfile 4%
  • Python 3.6%
  • HTML 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
furkan 81bccd1b12
Fix/core 06 instructions and validation (#33)
* Update app.py

* Update check.sh

* Update prompt.md
2026-10-24 13:45:06 +03:00
cmd/dockerlings fix: unbound bash variables 2025-11-17 16:50:52 +03:00
exercises Fix/core 06 instructions and validation (#33) 2026-10-24 13:45:06 +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 README.md 2026-08-26 20:14:15 +03:00

Dockerlings

Learn Docker by doing – the fun, interactive way

Need help with Docker?

I help teams containerize applications, improve development environments and CI/CD pipelines, and troubleshoot Docker deployments. Available for consulting and training → furkanaldemir@gmail.com


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 You’ll learn
core-01–04 Running containers, logs, exec, file operations
core-05–07 Writing Dockerfiles, COPY, EXPOSE, ENV, LABEL
core-08–09 Persistent volumes & live-reloading bind mounts
core-10–11 Container networking and port publishing
core-12–14 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