Indexed by TopGit from live GitHub metadata: containerd/nerdctl has 10.3k stars, written primarily in Go. contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
✅ [Optional] Supports P2P image distribution (IPFS) (*1)
✅ [Optional] Supports container image signing and verifying (cosign)
nerdctl is a non-core sub-project of containerd.
*1: P2P image distribution (IPFS) is completely optional. Your host is NOT connected to any P2P network, unless you opt in to install and run IPFS daemon.
Examples
Basic usage
To run a container with the default bridge CNI network (10.4.0.0/24):
The goal of nerdctl is to facilitate experimenting the cutting-edge features of containerd that are not present in Docker (see below).
Note that competing with Docker is not the goal of nerdctl. Those cutting-edge features are expected to be eventually available in Docker as well.
Also, nerdctl might be potentially useful for debugging Kubernetes clusters, but it is not the primary goal.
Features present in nerdctl but not present in Docker
Major:
On-demand image pulling (lazy-pulling) using Stargz/Nydus/OverlayBD/SOCI Snapshotter: nerdctl --snapshotter=stargz|nydus|overlaybd|soci run IMAGE .
Image encryption and decryption using ocicrypt (imgcrypt): nerdctl image (encrypt|decrypt) SRC DST
P2P image distribution using IPFS: nerdctl run ipfs://CID .
P2P image distribution (IPFS) is completely optional. Your host is NOT connected to any P2P network, unless you opt in to install and run IPFS daemon.
Cosign integration: nerdctl pull --verify=cosign and nerdctl push --sign=cosign, and in Compose
Accelerated rootless containers using bypass4netns: nerdctl run --annotation nerdctl/bypass4netns=true
Minor:
Namespacing: nerdctl --namespace=<NS> ps .
(NOTE: All Kubernetes containers are in the k8s.io containerd namespace regardless to Kubernetes namespaces)
Exporting Docker/OCI dual-format archives: nerdctl save .
Importing OCI archives as well as Docker archives: nerdctl load .
Specifying a non-image rootfs: nerdctl run -it --rootfs <ROOTFS> /bin/sh . The CLI syntax conforms to Podman convention.
Connecting a container to multiple networks at once: nerdctl run --net foo --net bar
Applying an (existing) AppArmor profile to rootless containers: nerdctl run --security-opt apparmor=<PROFILE>.
Use sudo nerdctl apparmor load to load the nerdctl-default profile.
Systemd compatibility support: nerdctl run --systemd=always
Trivial:
Inspecting raw OCI config: nerdctl container inspect --mode=native .
Features implemented in nerdctl ahead of Docker
Recursive read-only (RRO) bind-mount: nerdctl run -v /mnt:/mnt:rro (make children such as /mnt/usb to be read-only, too).
Requires kernel >= 5.12.
The same feature was later introduced in Docker v25 with a different syntax: read-only mounts are now recursively read-only by default when supported,
and the behavior is customizable with --mount type=bind,...,readonly,bind-recursive=<enabled|disabled|writable|readonly>.
nerdctl now supports the Docker v25 syntax too, and the old rro syntax is deprecated.
Similar tools
ctr: incompatible with Docker CLI, and not friendly to users.
Notably, ctr lacks the equivalents of the following nerdctl commands:
nerdctl run -p <PORT>
nerdctl run --restart=always --net=bridge
nerdctl pull with ~/.docker/config.json and credential helper binaries such as docker-credential-ecr-login
nerdctl logs
nerdctl build
nerdctl compose up
crictl: incompatible with Docker CLI, not friendly to users, and does not support non-CRI features
k3c v0.2 (abandoned): needs an extra daemon, and does not support non-CRI features
Rancher Kim (nee k3c v0.3): needs Kubernetes, and only focuses on image management commands such as kim build and kim push
PouchContainer (abandoned?): needs an extra daemon
Developer guide
nerdctl is a containerd non-core sub-project, licensed under the Apache 2.0 license.
As a containerd non-core sub-project, you will find the:
Project governance,
Maintainers,
and Contributing guidelines
information in our containerd/project repository.
Compiling nerdctl from source
Run make && sudo make install.
See the header of go.mod for the minimum supported version of Go.
Using go install github.com/containerd/nerdctl/v2/cmd/nerdctl is possible, but unrecommended because it does not fill version strings printed in nerdctl version
Testing
See testing nerdctl.
Contributing to nerdctl
Lots of commands and flags are currently missing. Pull requests are highly welcome.
Please certify your Developer Certificate of Origin (DCO), by signing off your commit with git commit -s and with your real name.
No homepage URL was recorded for containerd/nerdctl in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
Is containerd/nerdctl open source?
Yes — containerd/nerdctl ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/containerd/nerdctl.
What is containerd/nerdctl?
containerd/nerdctl (containerd/nerdctl) is a Go project on GitHub. From the project's own README: contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...
What license does containerd/nerdctl use?
containerd/nerdctl is released under the Apache-2.0 license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
Where do I read more about containerd/nerdctl?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/containerd/nerdctl is the definitive source.