Docker vs containerd

Runtime.

Overview

Docker and containerd are two container runtimes operating at different layers. Docker is the dev-first developer experience (Docker Desktop, Compose, image build, full-stack tooling); containerd is the lightweight runtime that Kubernetes actually uses (CRI-compatible, minimal surface, what runs underneath Docker too). The right answer depends on whether the workload is a developer laptop or a production Kubernetes node.

The approach

Docker for developer workflow, containerd for production Kubernetes runtime. They are not really competing for the same role; the choice is more about which layer of the stack is being discussed than which is "better."

Why this compounds

The right runtime per layer compounds across years. Developer workflow and production runtime decouple cleanly; cross-cluster tooling (image scanning, runtime security) targets containerd directly. By year two the layer-appropriate runtime is automatic.