
containerd: The core container runtime daemon.runc/crun/runsc: Low-level OCI runtime implementations.ctr: A low-level CLI for interacting with containerd directly.nerdctl: A Docker-compatible CLI for containerd, easier for day-to-day use.nerdctl pull hello-world:latest
nerdctl images
nerdctl run --rm hello-world:latest
nerdctl run -t --runtime runc docker.io/library/hello-world:latest
nerdctl run -t --runtime crun docker.io/library/hello-world:latest
nerdctl run -t --runtime runsc ghcr.io/containerd/busybox:latest dmesg
| Use Case | Recommended Tool | Why |
|---|---|---|
| Learning the basics | nerdctl | Familiar commands, less complexity |
| Understanding containerd internals | ctr | Direct API access, explicit control |
| Production automation | ctr | Minimal overhead, precise control |
| Development workflows | nerdctl | Build, compose, volume support |
Happy learning! 🚀
containerd: The core container runtime daemon.runc/crun/runsc: Low-level OCI runtime implementations.ctr: A low-level CLI for interacting with containerd directly.nerdctl: A Docker-compatible CLI for containerd, easier for day-to-day use.nerdctl pull hello-world:latest
nerdctl images
nerdctl run --rm hello-world:latest
nerdctl run -t --runtime runc docker.io/library/hello-world:latest
nerdctl run -t --runtime crun docker.io/library/hello-world:latest
nerdctl run -t --runtime runsc ghcr.io/containerd/busybox:latest dmesg
| Use Case | Recommended Tool | Why |
|---|---|---|
| Learning the basics | nerdctl | Familiar commands, less complexity |
| Understanding containerd internals | ctr | Direct API access, explicit control |
| Production automation | ctr | Minimal overhead, precise control |
| Development workflows | nerdctl | Build, compose, volume support |
Happy learning! 🚀