github containerd/nerdctl v2.0.0-rc.0

pre-release7 days ago

Changes

nerdctl v2 enables "detach-netns" for Rootless mode by default (#2723).

This will bring:

  • Faster and more stable nerdctl pull, nerdctl push, nerdctl build, etc
  • Proper support for nerdctl pull 127.0.0.1:.../...
  • Proper support for nerdctl run --net=host

Depends on RootlessKit >= v2.0 and BuildKit >= v0.13 (included in nerdctl-full-*.tar.gz).

Note

After upgrading nerdctl (rootless mode) from v1.x to v2.x, it is highly recommended to
re-install the systemd units and the configurations:

containerd-rootless-setuptool.sh uninstall
rm -rf ~/.config/{nerdctl,buildkit}
containerd-rootless-setuptool.sh install
CONTAINERD_NAMESPACE=default containerd-rootless-setuptool.sh install-buildkit-containerd

Other major changes:

  • nerdctl run:
    • Add --systemd flag for running systemd in containers flag (#2785, thanks to @sazzy4o)
    • Add--ipc=(shareable|container:<container>) flag (#2757, thanks to @minuk-dev)
    • Add --annotation flag (#2906)
      • Now nerdctl run --label is only set as a containerd label and not propagated as an OCI annotation. A label with the nerdctl/ prefix can no longer be set manually, with an exception for nerdctl/bypass4netns. The nerdctl/bypass4netns label is still allowed and is propagated to an OCI annotation, for sake of compatibility.
    • Add --sig-proxy flag (#3043, thanks to @CodeChanning)
    • Propagate image labels to container labels (not to container annotations) (#3023, thanks to @yankay)
  • nerdctl build:
  • nerdctl ps:
  • nerdctl inspect:
  • nerdctl network:
    • The networks are now aware of containerd namespaces. i.e., nerdctl --namespace=foo network list no longer shows networks created with nerdctl --namespace=bar network create (#3096, thanks to @apostasie)
    • Enhanced support for DHCP (#3001, thanks to @apostasie)
  • nerdctl compose up:
  • nerdct-full:
    • (See the Included components below)
  • And more!

Full changes: https://github.com/containerd/nerdctl/milestone/37?closed=1
Thanks to @CodeChanning @Shubhranshu153 @TBBle @abitrolly @alegrey91 @apostasie @baijia @djdongjin @dmcgowan @fahedouch @fwilhe2 @jmpargana @kebe7jun @ktock @manugupt1 @minuk-dev @monirul @qianxi0410 @roman-kiselenko @sazzy4o @sondavidb @testwill @yankay @zjumoon01 @zwpaper

Compatible containerd versions

This release of nerdctl is expected to be used with containerd v1.6, v1.7, or v2.0.

About the binaries

  • Minimal (nerdctl-2.0.0-rc.0-linux-amd64.tar.gz): nerdctl only
  • Full (nerdctl-full-2.0.0-rc.0-linux-amd64.tar.gz): Includes dependencies such as containerd, runc, and CNI

Minimal

Extract the archive to a path like /usr/local/bin or ~/bin .

tar Cxzvvf /usr/local/bin nerdctl-2.0.0-rc.0-linux-amd64.tar.gz

-rwxr-xr-x root/root  25972888 2024-06-26 02:06 nerdctl
-rwxr-xr-x root/root     22774 2024-06-26 02:06 containerd-rootless-setuptool.sh
-rwxr-xr-x root/root      8644 2024-06-26 02:06 containerd-rootless.sh

Full

Extract the archive to a path like /usr/local or ~/.local .

tar Cxzvvf /usr/local nerdctl-full-2.0.0-rc.0-linux-amd64.tar.gz

drwxr-xr-x 0/0               0 2024-06-26 02:13 bin/
-rwxr-xr-x 0/0        29131037 2015-10-21 00:00 bin/buildctl
-rwxr-xr-x 0/0        23724032 2022-09-05 09:52 bin/buildg
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-LICENSE -> ../libexec/cni/LICENSE
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-README.md -> ../libexec/cni/README.md
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-bandwidth -> ../libexec/cni/bandwidth
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-bridge -> ../libexec/cni/bridge
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-dhcp -> ../libexec/cni/dhcp
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-dummy -> ../libexec/cni/dummy
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-firewall -> ../libexec/cni/firewall
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-host-device -> ../libexec/cni/host-device
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-host-local -> ../libexec/cni/host-local
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-ipvlan -> ../libexec/cni/ipvlan
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-loopback -> ../libexec/cni/loopback
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-macvlan -> ../libexec/cni/macvlan
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-portmap -> ../libexec/cni/portmap
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-ptp -> ../libexec/cni/ptp
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-sbr -> ../libexec/cni/sbr
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-static -> ../libexec/cni/static
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-tap -> ../libexec/cni/tap
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-tuning -> ../libexec/cni/tuning
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-vlan -> ../libexec/cni/vlan
lrwxrwxrwx 0/0               0 2024-06-26 02:13 bin/buildkit-cni-vrf -> ../libexec/cni/vrf
-rwxr-xr-x 0/0        57973271 2015-10-21 00:00 bin/buildkitd
-rwxr-xr-x 0/0        14938456 2024-06-26 02:11 bin/bypass4netns
-rwxr-xr-x 0/0         5501080 2024-06-26 02:11 bin/bypass4netnsd
-rwxr-xr-x 0/0        37396984 2024-06-26 02:12 bin/containerd
-rwxr-xr-x 0/0         9474048 2023-11-02 17:34 bin/containerd-fuse-overlayfs-grpc
-rwxr-xr-x 0/0           22774 2024-06-26 02:11 bin/containerd-rootless-setuptool.sh
-rwxr-xr-x 0/0            8644 2024-06-26 02:11 bin/containerd-rootless.sh
-rwxr-xr-x 0/0        12726424 2024-06-26 02:12 bin/containerd-shim-runc-v2
-rwxr-xr-x 0/0        45903872 2023-10-31 08:57 bin/containerd-stargz-grpc
-rwxr-xr-x 0/0        21182999 2024-06-26 02:13 bin/ctd-decoder
-rwxr-xr-x 0/0        18587800 2024-06-26 02:12 bin/ctr
-rwxr-xr-x 0/0        30334663 2024-06-26 02:13 bin/ctr-enc
-rwxr-xr-x 0/0        19931136 2023-10-31 08:58 bin/ctr-remote
-rwxr-xr-x 0/0         1785448 2024-06-26 02:13 bin/fuse-overlayfs
-rwxr-xr-x 0/0        66714127 2024-06-26 02:12 bin/ipfs
-rwxr-xr-x 0/0        25944216 2024-06-26 02:11 bin/nerdctl
-rwxr-xr-x 0/0        10663123 2024-04-26 01:36 bin/rootlessctl
-rwxr-xr-x 0/0        12363757 2024-04-26 01:36 bin/rootlesskit
-rwxr-xr-x 0/0        15407256 2024-06-26 02:11 bin/runc
-rwxr-xr-x 0/0         2354520 2024-06-26 02:13 bin/slirp4netns
-rwxr-xr-x 0/0          870496 2024-06-26 02:13 bin/tini
drwxr-xr-x 0/0               0 2024-06-26 02:12 lib/
drwxr-xr-x 0/0               0 2024-06-26 02:12 lib/systemd/
drwxr-xr-x 0/0               0 2024-06-26 02:13 lib/systemd/system/
-rw-r--r-- 0/0            1312 2024-06-26 02:13 lib/systemd/system/buildkit.service
-rw-r--r-- 0/0            1251 2024-06-26 02:10 lib/systemd/system/containerd.service
-rw-r--r-- 0/0             312 2024-06-26 02:13 lib/systemd/system/stargz-snapshotter.service
drwxr-xr-x 0/0               0 2024-06-26 02:12 libexec/
drwxr-xr-x 0/0               0 2024-06-26 02:12 libexec/cni/
-rw-r--r-- 0/0           11357 2024-06-17 15:51 libexec/cni/LICENSE
-rw-r--r-- 0/0            2343 2024-06-17 15:51 libexec/cni/README.md
-rwxr-xr-x 0/0         4272898 2024-06-17 15:51 libexec/cni/bandwidth
-rwxr-xr-x 0/0         4788191 2024-06-17 15:51 libexec/cni/bridge
-rwxr-xr-x 0/0        11419738 2024-06-17 15:51 libexec/cni/dhcp
-rwxr-xr-x 0/0         4424930 2024-06-17 15:51 libexec/cni/dummy
-rwxr-xr-x 0/0         4943846 2024-06-17 15:51 libexec/cni/firewall
-rwxr-xr-x 0/0         4345300 2024-06-17 15:51 libexec/cni/host-device
-rwxr-xr-x 0/0         3679575 2024-06-17 15:51 libexec/cni/host-local
-rwxr-xr-x 0/0         4443729 2024-06-17 15:51 libexec/cni/ipvlan
-rwxr-xr-x 0/0         3750882 2024-06-17 15:51 libexec/cni/loopback
-rwxr-xr-x 0/0         4480422 2024-06-17 15:51 libexec/cni/macvlan
-rwxr-xr-x 0/0         4228332 2024-06-17 15:51 libexec/cni/portmap
-rwxr-xr-x 0/0         4602833 2024-06-17 15:51 libexec/cni/ptp
-rwxr-xr-x 0/0         3957166 2024-06-17 15:51 libexec/cni/sbr
-rwxr-xr-x 0/0         3223947 2024-06-17 15:51 libexec/cni/static
-rwxr-xr-x 0/0         4503742 2024-06-17 15:51 libexec/cni/tap
-rwxr-xr-x 0/0         3838043 2024-06-17 15:51 libexec/cni/tuning
-rwxr-xr-x 0/0         4440528 2024-06-17 15:51 libexec/cni/vlan
-rwxr-xr-x 0/0         4103500 2024-06-17 15:51 libexec/cni/vrf
drwxr-xr-x 0/0               0 2024-06-26 02:11 share/
drwxr-xr-x 0/0               0 2024-06-26 02:11 share/doc/
drwxr-xr-x 0/0               0 2024-06-26 02:11 share/doc/nerdctl/
-rw-r--r-- 0/0           12556 2024-06-26 02:06 share/doc/nerdctl/README.md
drwxr-xr-x 0/0               0 2024-06-26 02:06 share/doc/nerdctl/docs/
-rw-r--r-- 0/0            3953 2024-06-26 02:06 share/doc/nerdctl/docs/build.md
-rw-r--r-- 0/0            2570 2024-06-26 02:06 share/doc/nerdctl/docs/builder-debug.md
-rw-r--r-- 0/0            4779 2024-06-26 02:06 share/doc/nerdctl/docs/cni.md
-rw-r--r-- 0/0           76391 2024-06-26 02:06 share/doc/nerdctl/docs/command-reference.md
-rw-r--r-- 0/0            1814 2024-06-26 02:06 share/doc/nerdctl/docs/compose.md
-rw-r--r-- 0/0            5329 2024-06-26 02:06 share/doc/nerdctl/docs/config.md
-rw-r--r-- 0/0            9128 2024-06-26 02:06 share/doc/nerdctl/docs/cosign.md
-rw-r--r-- 0/0            5660 2024-06-26 02:06 share/doc/nerdctl/docs/cvmfs.md
-rw-r--r-- 0/0            2776 2024-06-26 02:06 share/doc/nerdctl/docs/dir.md
-rw-r--r-- 0/0             906 2024-06-26 02:06 share/doc/nerdctl/docs/experimental.md
-rw-r--r-- 0/0           14217 2024-06-26 02:06 share/doc/nerdctl/docs/faq.md
-rw-r--r-- 0/0             884 2024-06-26 02:06 share/doc/nerdctl/docs/freebsd.md
-rw-r--r-- 0/0            3273 2024-06-26 02:06 share/doc/nerdctl/docs/gpu.md
drwxr-xr-x 0/0               0 2024-06-26 02:06 share/doc/nerdctl/docs/images/
-rw-r--r-- 0/0          684421 2024-06-26 02:06 share/doc/nerdctl/docs/images/rootlessKit-network-design.png
-rw-r--r-- 0/0           14462 2024-06-26 02:06 share/doc/nerdctl/docs/ipfs.md
-rw-r--r-- 0/0            1755 2024-06-26 02:06 share/doc/nerdctl/docs/multi-platform.md
-rw-r--r-- 0/0            2960 2024-06-26 02:06 share/doc/nerdctl/docs/notation.md
-rw-r--r-- 0/0            2596 2024-06-26 02:06 share/doc/nerdctl/docs/nydus.md
-rw-r--r-- 0/0            3277 2024-06-26 02:06 share/doc/nerdctl/docs/ocicrypt.md
-rw-r--r-- 0/0            1876 2024-06-26 02:06 share/doc/nerdctl/docs/overlaybd.md
-rw-r--r-- 0/0           15657 2024-06-26 02:06 share/doc/nerdctl/docs/registry.md
-rw-r--r-- 0/0            8707 2024-06-26 02:06 share/doc/nerdctl/docs/rootless.md
-rw-r--r-- 0/0            2015 2024-06-26 02:06 share/doc/nerdctl/docs/soci.md
-rw-r--r-- 0/0           10312 2024-06-26 02:06 share/doc/nerdctl/docs/stargz.md
drwxr-xr-x 0/0               0 2024-06-26 02:13 share/doc/nerdctl-full/
-rw-r--r-- 0/0            1163 2024-06-26 02:13 share/doc/nerdctl-full/README.md
-rw-r--r-- 0/0            8552 2024-06-26 02:13 share/doc/nerdctl-full/SHA256SUMS

Included components

See share/doc/nerdctl-full/README.md:

# nerdctl (full distribution)
- nerdctl: v2.0.0-rc.0
- containerd: v2.0.0-rc.3
- runc: v1.1.13
- CNI plugins: v1.5.1
- BuildKit: v0.14.1
- Stargz Snapshotter: v0.15.1
- imgcrypt: v1.1.11
- RootlessKit: v2.1.0
- slirp4netns: v1.3.1
- bypass4netns: v0.4.1
- fuse-overlayfs: v1.13
- containerd-fuse-overlayfs: v1.0.8
- Kubo (IPFS): v0.29.0
- Tini: v0.19.0
- buildg: v0.4.1

## License
- bin/slirp4netns:    [GNU GENERAL PUBLIC LICENSE, Version 2](https://github.com/rootless-containers/slirp4netns/blob/v1.3.1/COPYING)
- bin/fuse-overlayfs: [GNU GENERAL PUBLIC LICENSE, Version 2](https://github.com/containers/fuse-overlayfs/blob/v1.13/COPYING)
- bin/ipfs: [Combination of MIT-only license and dual MIT/Apache-2.0 license](https://github.com/ipfs/kubo/blob/v0.29.0/LICENSE)
- bin/{runc,bypass4netns,bypass4netnsd}: Apache License 2.0, statically linked with libseccomp ([LGPL 2.1](https://github.com/seccomp/libseccomp/blob/main/LICENSE), source code available at https://github.com/seccomp/libseccomp/)
- bin/tini: [MIT License](https://github.com/krallin/tini/blob/v0.19.0/LICENSE)
- Other files: [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)

Quick start

Rootful

$ sudo systemctl enable --now containerd
$ sudo nerdctl run -d --name nginx -p 80:80 nginx:alpine

Rootless

$ containerd-rootless-setuptool.sh install
$ nerdctl run -d --name nginx -p 8080:80 nginx:alpine

Enabling cgroup v2 is highly recommended for rootless mode, see https://rootlesscontaine.rs/getting-started/common/cgroup2/ .


The binaries were built automatically on GitHub Actions.
The build log is available for 90 days: https://github.com/containerd/nerdctl/actions/runs/9672401204

The sha256sum of the SHA256SUMS file itself is afecaae3c412b38e045e1ce0250bdc893f21d22985b23bb8b90512ae52268bce .


Release manager: Akihiro Suda (@AkihiroSuda)

Don't miss a new nerdctl release

NewReleases is sending notifications on new releases.