Summary
containerd
Provides a container runtime.
ctr
Low-level debugging tool, mainly for debugging containerd.
nerdctl
General purpose, Docker-like CLI alternative to Docker for containerd.
crictl
Interacts with any CRI runtime, mainly for inspecting and debugging container runtimes. Ideal for Kubernetes users.
Why Kubernetes Doesn’t Need Docker
Kubernetes supports other runtime engines that adhere to the OCI standards, like containerd or Rocket, so it is not necessary to install Docker before installing Kubernetes. Kubernetes only needs the Container Runtime Interface (CRI) to work with a container runtime. Therefore, Kubernetes is compatible with any runtime engine via CRI, such as Rocket, containerd, CRI-O, etc.containerD
If you don’t need Docker’s other features, you can install containerD without Docker. When you install containerD, it will auto-install its command-line toolctr.
ctr
ctr is solely made for debugging containerd and is not user-friendly, but it gives you a great way to understand how containers work under the hood.
nerdctl
nerdctl provides a stable, human-friendly user experience and is mainly used for general purposes. It uses the same UI/UX as Docker.- Same Docker-like CLI
- Supports Docker Compose (
nerdctl compose up) - Supports rootless mode
- Supports lazy-pulling
- Supports encrypted container images
- Supports P2P image distribution
- Supports container image signing and verifying
- Applies Kubernetes namespaces for containers
crictl
crictl provides a CLI for CRI-compatible container runtimes like containerd.- Must be installed separately
- Can interact with any CRI runtime — developers can debug without installing Kubernetes components
- Used to inspect and debug container runtimes; not ideal for creating containers