Được TopGit lập chỉ mục từ metadata GitHub: containerd/nerdctl có 10.3k sao, viết chủ yếu bằng Go. contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
✅ [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.
Có — containerd/nerdctl phát hành theo license Apache-2.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/containerd/nerdctl.
containerd/nerdctl có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho containerd/nerdctl. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
containerd/nerdctl dùng license gì?
containerd/nerdctl phát hành theo license Apache-2.0. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
containerd/nerdctl là gì?
containerd/nerdctl (containerd/nerdctl) là dự án Go trên GitHub. Theo mô tả gốc: contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...
Đọc thêm về containerd/nerdctl ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/containerd/nerdctl là nguồn chính thức.