Steven's Knowledge

Docker

The industry-standard container platform - from your first container to production-ready images

Docker

Docker packages applications and their dependencies into containers — lightweight, isolated processes that run the same way on your laptop, in CI, and in production.

Why Docker

Without containersWith Docker
"Works on my machine"Same image runs everywhere
Manual dependency setup per hostDependencies baked into the image
One service per VM (expensive)Many containers per host
Snapshots and rollbacks via VM toolsImmutable image tags + registry
Hours to provision a hostSeconds to start a container

How a Container Differs From a VM

┌─────────────────────────────┐   ┌─────────────────────────────┐
│         App A     App B     │   │         App A     App B     │
│      ┌────────┐ ┌────────┐  │   │      ┌────────┐ ┌────────┐  │
│      │ libs   │ │ libs   │  │   │      │ libs   │ │ libs   │  │
│      │ guest  │ │ guest  │  │   │      └────────┘ └────────┘  │
│      │  OS    │ │  OS    │  │   │      Container runtime       │
│      └────────┘ └────────┘  │   │      ────────────────        │
│      Hypervisor             │   │           Host OS            │
│      ────────────           │   │      ────────────────        │
│         Host OS             │   │          Hardware            │
└─────────────────────────────┘   └─────────────────────────────┘
              VM                          Container

A VM ships a whole guest OS; a container shares the host kernel and ships only the userspace differences. That's why containers are ~MB instead of ~GB and start in milliseconds instead of seconds.

Core Vocabulary

TermWhat it is
ImageRead-only template (your app + runtime + libs)
ContainerA running (or stopped) instance of an image
DockerfileThe recipe to build an image
RegistryWhere images live (Docker Hub, ECR, GHCR, ...)
VolumePersistent storage that outlives a container
NetworkVirtual network for container-to-container traffic

Learning Path

Read in this order if you're new — each page builds on the previous one.

Docker vs. Alternatives

ToolNotes
DockerThe default; richest tooling and ecosystem
PodmanDaemonless, rootless; near-drop-in docker CLI compatible
containerdThe runtime Docker uses internally; what Kubernetes talks to directly
nerdctlDocker-CLI-compatible client for containerd
Buildah / KanikoBuild images without a Docker daemon (handy in CI / K8s)

Docker is the runtime. Once your images exist, you need somewhere to actually run them — for single-host setups Compose is enough; for multi-host production, move to Kubernetes.

On this page