Docker Learning Hub

What is Docker?

Docker is a platform for building, packaging, and running applications as containers. A container bundles your app and its dependencies into an isolated, reproducible environment that runs identically everywhere.

Mental model: Image = blueprint (immutable snapshot) · Container = running instance (mutable runtime layer on top)

Why containers?

Consistent runtime across laptops, CI, and production. Quick startup. Reproducible builds. No "works on my machine" excuses.

Consistency Speed Portability

Core pieces

Images, containers, registries, Dockerfile, build context, networks, and volumes — the seven building blocks.

Dockerfile Network Volumes

Common flow

Write Dockerfile → build image → run container → connect network/volumes → ship to registry.

terminal
$ docker build -t myapp:1.0 .
$ docker run --rm -p 8080:8080 myapp:1.0

Start here — pick a topic

Each page is standalone with diagrams, examples, and deep explanations.

Dockerfile Guide

Dockerfile anatomy, image layers, build cache, CMD vs ENTRYPOINT — the complete reference.

Open Dockerfile Guide

Layers • Cache • CMD vs ENTRYPOINT

Networking Visualizer

Bridge, host, overlay, macvlan — architecture diagrams and decision guides for every network driver.

Open Networking

Bridge • Host • Overlay • Macvlan

Volumes Guide

Volumes vs bind mounts vs tmpfs, persistence patterns, backups, and real-world usage examples.

Open Volumes

Volumes • Bind mounts • tmpfs

Troubleshooting

Production-level diagnosis for containers, networking, images, volumes, resources, and daemon issues.

Open Troubleshooting

Containers • Networking • Daemon