nerdctl vs Docker: containerd CLI vs Docker CLI
nerdctl is a Docker-compatible CLI for containerd, so most docker commands work as nerdctl. Docker is the full, familiar platform; nerdctl is closer to the containerd runtime and adds features like lazy-pulling images.
nerdctl gives you the Docker command experience directly on containerd, the runtime that already underpins Docker and Kubernetes. Docker bundles a broader product; nerdctl is leaner and exposes containerd-native capabilities. Here is the honest comparison.
| nerdctl | Docker | |
|---|---|---|
| Runtime | containerd (directly) | containerd via Docker Engine |
| CLI compatibility | Docker-compatible commands | The reference CLI |
| Compose | nerdctl compose | docker compose |
| Rootless | Supported | Supported |
| Extra features | Lazy pulling (eStargus/SOCI), encryption | Broad ecosystem, Desktop, Hub UX |
| Ecosystem/tooling | Growing | Largest, most documented |
Compatibility with a leaner stack
nerdctl intentionally mirrors the Docker CLI, so nerdctl run, nerdctl build, and nerdctl compose feel familiar while talking straight to containerd. That means fewer moving parts than the full Docker Engine and access to containerd-native features. Docker, in return, offers the broadest ecosystem, the most documentation, and polished tooling like Docker Desktop.
Runtime and features
Because nerdctl is close to containerd, it can expose capabilities like lazy image pulling (eStargz/SOCI) that start containers before the whole image downloads, and image encryption. Docker abstracts containerd behind its engine and product surface, which most developers already know. If you run Kubernetes (which uses containerd), nerdctl aligns with that runtime.
In CI
nerdctl fits CI that standardizes on containerd or wants a lighter, rootless-friendly stack, and its Docker-compatible commands ease migration. Docker remains the default when maximum ecosystem compatibility and familiarity matter most.
The verdict
Choose nerdctl to use a Docker-like CLI directly on containerd with access to newer runtime features and a leaner stack; choose Docker for the largest ecosystem, best documentation, and the most familiar experience. Command compatibility keeps migration low-risk.