SlideShare a Scribd company logo
nerdctl: yet another Docker & Docker Compose
implementation, based on containerd
Akihiro Suda, NTT
Paris Container Day (June 2-3, 2021)
github.com/containerd/nerdctl
What is nerdctl?
• Docker-compatible CLI for containerd
• Same UI/UX as Docker & Docker Compose
• Supports lazy-pulling (Stargz)
• Supports encrypted images (OCIcrypt)
• Also supports rootless mode, of course ☺
2
Demo
3
$ nerdctl run …
$ nerdctl compose up …
What is containerd?
• The universal container runtime
• Used by Docker, Kubernetes, BuildKit, faasd, etc.
4
Docker Kubernetes nerdctl
runc
Linux kernel
Why another Docker-like CLI?
5
• Docker partially uses containerd, but not fully
• Docker cannot support recent innovations in the containerd
ecosystem
• Lazy-pulling (Stargz)
• Encryption (OCIcrypt)
• …
Why another Docker-like CLI?
6
Runtime Subsystem Image Subsystem
Docker nerdctl
runc
Stargz
OCIcrypt
Unavailable for
Docker
Why another Docker-like CLI?
7
• So we had to create a new CLI for the containerd-native
ecosystem
• Designed to be Docker-compatible so that users do not
need to learn something new
What about ctr? crictl?
8
• ctr: the CLI included in containerd
• crictl: the CLI for Kubernetes CRI API
• Unlike nerdctl, ctr and crictl were made solely for
debugging purpose
What about ctr? crictl?
9
• ctr lacks lots of features
• docker run -p
• docker run --restart=always
• docker pull, with ~/.docker/config.json
• docker logs …
• crictl has similar restrictions, too
• nerdctl provides all these features
The goal is to defeat Docker…?
• No
• The goal is to provide a comfortable environment for
playing around with the modern ecosystem of containerd
• Lazy-pulling, OCIcrypt, …
• These features are expected to be available in Docker as
well, eventually (but not soon) https://github.com/moby/moby/pull/41002
10
Lazy-pulling
• Lazy-pulling means running a container ahead of
completion of pulling its image from the registry
• With a new image format: eStargz
• Forked from Stargz: Seekable tar gz ( https://github.com/google/crfs )
• Compatible with the legacy Docker/OCI format
• https://github.com/containerd/stargz-snapshotter
11
Lazy-pulling
12
https://github.com/containerd/stargz-snapshotter/blob/v0.6.1/docs/images/benchmarking-result-ecdb227.png
Demo: lazy-pulling
13
$ nerdctl --snapshotter=stargz …
OCIcrypt
• Transparently encrypt and decrypted images
• Tolerant to leakage of private images on a registry
• https://github.com/containers/ocicrypt
14
nerdctl on macOS (for Linux containers)
• Lima: Linux virtual machines on macOS (The name may change in future)
https://github.com/AkihiroSuda/lima
• Made for containerd & nerdctl
• Supports filesystem sharing & port forwarding
• Similar to WSL2
15
Demo: nerdctl on macOS
16
$ lima start
$ lima nerdctl run …
nerdctl on macOS (for Linux containers)
• Hypervisor: QEMU with HVF accelerator
• Intel Mac: no patch is needed
• ARM Mac: QEMU needs to be patched https://lists.gnu.org/archive/html/qemu-devel/2021-05/msg06220.html
• File system sharing
• Current implementation: “Reverse SSHFS” (sshfs –o slave)
• Future: virtio-9p-pci
• Port forwarding
• The guest agent daemon watches /proc/net/tcp, per 3 seconds
• The host agent runs `ssh –L` on demand to set up port forwarding
17
nerdctl on Windows
• Known to work on WSL2 for running Linux containers
• Native support for Windows is in progress (Thanks to James Sturtevant)
https://github.com/containerd/nerdctl/pull/197
18
Recap
19
• Docker-compatible CLI for containerd
• Same UI/UX as Docker & Docker Compose
• Supports lazy-pulling (Stargz)
• Supports encrypted images (OCIcrypt)
• Also supports rootless mode, of course ☺
Getting started
20
• https://github.com/containerd/nerdctl/releases
• nerdctl-full-<VERSION>-linux-amd64.tar.gz contains all the
dependencies (containerd, runc, …)
Getting started
21
$ sudo systemctl enable --now containerd
$ sudo nerdctl run -d --name nginx -p 80:80 nginx:alpine
Rootful :
Rootless (more secure) :
$ containerd-rootless-setuptool.sh install
$ nerdctl run -d --name nginx -p 8080:80 nginx:alpine
80:80 is typically prohibited
for non-root users, so use 8080:80
Further information
22
• https://github.com/containerd/nerdctl
• #containerd channel of CNCF slack ( https://slack.cncf.io )
• Fahed Dorgaa
• Shishir Mahajan
• Sho Haraki
• Wei Fu
• Dax McDonald
• Kohei Tokunaga
• Jack Kelly
• Andrey Platonov
• James Sturtevant
• Sherif Mowafy
• Alex Ellis
• Matt Thalman
• Hu Shuai
• Jian Zeng
• Harshvardhan Karn
• Gaurav Gahlot
Thanks to contributors!
23
https://github.com/containerd/nerdctl/graphs/contributors

More Related Content

PDF
Containerd + buildkit breakout
PDF
Open vSwitch 패킷 처리 구조
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
PDF
오픈스택 멀티노드 설치 후기
PDF
DoS and DDoS mitigations with eBPF, XDP and DPDK
PPTX
Kubernetes 101 for Beginners
PDF
Continuous Lifecycle London 2018 Event Keynote
PDF
Ansible
Containerd + buildkit breakout
Open vSwitch 패킷 처리 구조
Red Hat OpenStack 17 저자직강+스터디그룹_2주차
오픈스택 멀티노드 설치 후기
DoS and DDoS mitigations with eBPF, XDP and DPDK
Kubernetes 101 for Beginners
Continuous Lifecycle London 2018 Event Keynote
Ansible

What's hot (20)

PDF
Ceph Block Devices: A Deep Dive
PDF
Rootless Containers
PPTX
Docker and kubernetes_introduction
ODP
Introduction to Ansible
PDF
Kubernetes
PPT
Red Hat Ansible 적용 사례
PDF
20150511 jun lee_openstack neutron 분석 (최종)
PDF
OpenStackトラブルシューティング入門
PPTX
Nginx勉強会
PDF
Kubernetes - A Comprehensive Overview
PDF
Persistent Storage with Containers with Kubernetes & OpenShift
PDF
[KubeCon EU 2022] Running containerd and k3s on macOS
PDF
Introduction to eBPF
PDF
Linux Profiling at Netflix
PDF
Ansible Automation to Rule Them All
PPTX
쿠버네티스 ( Kubernetes ) 소개 자료
PDF
Ansible - Introduction
PDF
Reliable Event Delivery in Apache Kafka Based on Retry Policy and Dead Letter...
PDF
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
PDF
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
Ceph Block Devices: A Deep Dive
Rootless Containers
Docker and kubernetes_introduction
Introduction to Ansible
Kubernetes
Red Hat Ansible 적용 사례
20150511 jun lee_openstack neutron 분석 (최종)
OpenStackトラブルシューティング入門
Nginx勉強会
Kubernetes - A Comprehensive Overview
Persistent Storage with Containers with Kubernetes & OpenShift
[KubeCon EU 2022] Running containerd and k3s on macOS
Introduction to eBPF
Linux Profiling at Netflix
Ansible Automation to Rule Them All
쿠버네티스 ( Kubernetes ) 소개 자료
Ansible - Introduction
Reliable Event Delivery in Apache Kafka Based on Retry Policy and Dead Letter...
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
Ad

Similar to [Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose implementation, based on containerd (20)

PDF
[Container Plumbing Days 2023] Why was nerdctl made?
PDF
20240320 [KubeCon EU Pavilion] containerd.pdf
PDF
containerdの概要と最近の機能
PDF
20241113 [KubeCon NA Pavilion] containerd.pdf
PDF
[KubeConNA2023] containerd pavilion
PDF
20250403 [KubeCon EU Pavilion] containerd.pdf
PDF
[KubeCon EU 2020] containerd Deep Dive
PDF
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
PDF
Introduction and Deep Dive Into Containerd
PDF
[KubeConEU2023] containerd pavilion
PPTX
containerd the universal container runtime
PDF
20250617 [KubeCon JP 2025] containerd - Project Update and Deep Dive.pdf
PPTX
Docker containerd Kubernetes sig node
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
PDF
Docker_AGH_v0.1.3
PDF
The internals and the latest trends of container runtimes
PPTX
ABCs of docker
PDF
Leveraging the Power of containerd Events - Evan Hazlett
PDF
Introduction to Docker and Containers
PDF
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
[Container Plumbing Days 2023] Why was nerdctl made?
20240320 [KubeCon EU Pavilion] containerd.pdf
containerdの概要と最近の機能
20241113 [KubeCon NA Pavilion] containerd.pdf
[KubeConNA2023] containerd pavilion
20250403 [KubeCon EU Pavilion] containerd.pdf
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2021] Introduction and Deep Dive Into Containerd
Introduction and Deep Dive Into Containerd
[KubeConEU2023] containerd pavilion
containerd the universal container runtime
20250617 [KubeCon JP 2025] containerd - Project Update and Deep Dive.pdf
Docker containerd Kubernetes sig node
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Docker_AGH_v0.1.3
The internals and the latest trends of container runtimes
ABCs of docker
Leveraging the Power of containerd Events - Evan Hazlett
Introduction to Docker and Containers
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
Ad

More from Akihiro Suda (20)

PDF
20250616 [KubeCon JP 2025] VexLLM - Silence Negligible CVE Alerts Using LLM.pdf
PDF
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
PDF
20250402 [KubeCon EU Pavilion] Lima.pdf_
PDF
20241115 [KubeCon NA Pavilion] Lima.pdf_
PDF
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
PDF
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
PDF
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
PDF
20240321 [KubeCon EU Pavilion] Lima.pdf_
PDF
20240201 [HPC Containers] Rootless Containers.pdf
PDF
[Podman Special Event] Kubernetes in Rootless Podman
PDF
[KubeConNA2023] Lima pavilion
PDF
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
PDF
[CNCF TAG-Runtime] Usernetes Gen2
PDF
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
PDF
[KubeConEU2023] Lima pavilion
PDF
[FOSDEM2023] Bit-for-bit reproducible builds with Dockerfile
PDF
[CNCF TAG-Runtime 2022-10-06] Lima
PPTX
Dockerからcontainerdへの移行
PDF
[Docker Tokyo #35] Docker 20.10
PDF
DockerとPodmanの比較
20250616 [KubeCon JP 2025] VexLLM - Silence Negligible CVE Alerts Using LLM.pdf
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
20250402 [KubeCon EU Pavilion] Lima.pdf_
20241115 [KubeCon NA Pavilion] Lima.pdf_
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240321 [KubeCon EU Pavilion] Lima.pdf_
20240201 [HPC Containers] Rootless Containers.pdf
[Podman Special Event] Kubernetes in Rootless Podman
[KubeConNA2023] Lima pavilion
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[CNCF TAG-Runtime] Usernetes Gen2
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[KubeConEU2023] Lima pavilion
[FOSDEM2023] Bit-for-bit reproducible builds with Dockerfile
[CNCF TAG-Runtime 2022-10-06] Lima
Dockerからcontainerdへの移行
[Docker Tokyo #35] Docker 20.10
DockerとPodmanの比較

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
ai tools demonstartion for schools and inter college
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Transform Your Business with a Software ERP System
PDF
Nekopoi APK 2025 free lastest update
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Digital Strategies for Manufacturing Companies
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
How to Choose the Right IT Partner for Your Business in Malaysia
Online Work Permit System for Fast Permit Processing
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
2025 Textile ERP Trends: SAP, Odoo & Oracle
ai tools demonstartion for schools and inter college
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Softaken Excel to vCard Converter Software.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Navsoft: AI-Powered Business Solutions & Custom Software Development
Design an Analysis of Algorithms II-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Transform Your Business with a Software ERP System
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms I-SECS-1021-03
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...

[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose implementation, based on containerd

  • 1. nerdctl: yet another Docker & Docker Compose implementation, based on containerd Akihiro Suda, NTT Paris Container Day (June 2-3, 2021) github.com/containerd/nerdctl
  • 2. What is nerdctl? • Docker-compatible CLI for containerd • Same UI/UX as Docker & Docker Compose • Supports lazy-pulling (Stargz) • Supports encrypted images (OCIcrypt) • Also supports rootless mode, of course ☺ 2
  • 3. Demo 3 $ nerdctl run … $ nerdctl compose up …
  • 4. What is containerd? • The universal container runtime • Used by Docker, Kubernetes, BuildKit, faasd, etc. 4 Docker Kubernetes nerdctl runc Linux kernel
  • 5. Why another Docker-like CLI? 5 • Docker partially uses containerd, but not fully • Docker cannot support recent innovations in the containerd ecosystem • Lazy-pulling (Stargz) • Encryption (OCIcrypt) • …
  • 6. Why another Docker-like CLI? 6 Runtime Subsystem Image Subsystem Docker nerdctl runc Stargz OCIcrypt Unavailable for Docker
  • 7. Why another Docker-like CLI? 7 • So we had to create a new CLI for the containerd-native ecosystem • Designed to be Docker-compatible so that users do not need to learn something new
  • 8. What about ctr? crictl? 8 • ctr: the CLI included in containerd • crictl: the CLI for Kubernetes CRI API • Unlike nerdctl, ctr and crictl were made solely for debugging purpose
  • 9. What about ctr? crictl? 9 • ctr lacks lots of features • docker run -p • docker run --restart=always • docker pull, with ~/.docker/config.json • docker logs … • crictl has similar restrictions, too • nerdctl provides all these features
  • 10. The goal is to defeat Docker…? • No • The goal is to provide a comfortable environment for playing around with the modern ecosystem of containerd • Lazy-pulling, OCIcrypt, … • These features are expected to be available in Docker as well, eventually (but not soon) https://github.com/moby/moby/pull/41002 10
  • 11. Lazy-pulling • Lazy-pulling means running a container ahead of completion of pulling its image from the registry • With a new image format: eStargz • Forked from Stargz: Seekable tar gz ( https://github.com/google/crfs ) • Compatible with the legacy Docker/OCI format • https://github.com/containerd/stargz-snapshotter 11
  • 13. Demo: lazy-pulling 13 $ nerdctl --snapshotter=stargz …
  • 14. OCIcrypt • Transparently encrypt and decrypted images • Tolerant to leakage of private images on a registry • https://github.com/containers/ocicrypt 14
  • 15. nerdctl on macOS (for Linux containers) • Lima: Linux virtual machines on macOS (The name may change in future) https://github.com/AkihiroSuda/lima • Made for containerd & nerdctl • Supports filesystem sharing & port forwarding • Similar to WSL2 15
  • 16. Demo: nerdctl on macOS 16 $ lima start $ lima nerdctl run …
  • 17. nerdctl on macOS (for Linux containers) • Hypervisor: QEMU with HVF accelerator • Intel Mac: no patch is needed • ARM Mac: QEMU needs to be patched https://lists.gnu.org/archive/html/qemu-devel/2021-05/msg06220.html • File system sharing • Current implementation: “Reverse SSHFS” (sshfs –o slave) • Future: virtio-9p-pci • Port forwarding • The guest agent daemon watches /proc/net/tcp, per 3 seconds • The host agent runs `ssh –L` on demand to set up port forwarding 17
  • 18. nerdctl on Windows • Known to work on WSL2 for running Linux containers • Native support for Windows is in progress (Thanks to James Sturtevant) https://github.com/containerd/nerdctl/pull/197 18
  • 19. Recap 19 • Docker-compatible CLI for containerd • Same UI/UX as Docker & Docker Compose • Supports lazy-pulling (Stargz) • Supports encrypted images (OCIcrypt) • Also supports rootless mode, of course ☺
  • 20. Getting started 20 • https://github.com/containerd/nerdctl/releases • nerdctl-full-<VERSION>-linux-amd64.tar.gz contains all the dependencies (containerd, runc, …)
  • 21. Getting started 21 $ sudo systemctl enable --now containerd $ sudo nerdctl run -d --name nginx -p 80:80 nginx:alpine Rootful : Rootless (more secure) : $ containerd-rootless-setuptool.sh install $ nerdctl run -d --name nginx -p 8080:80 nginx:alpine 80:80 is typically prohibited for non-root users, so use 8080:80
  • 22. Further information 22 • https://github.com/containerd/nerdctl • #containerd channel of CNCF slack ( https://slack.cncf.io )
  • 23. • Fahed Dorgaa • Shishir Mahajan • Sho Haraki • Wei Fu • Dax McDonald • Kohei Tokunaga • Jack Kelly • Andrey Platonov • James Sturtevant • Sherif Mowafy • Alex Ellis • Matt Thalman • Hu Shuai • Jian Zeng • Harshvardhan Karn • Gaurav Gahlot Thanks to contributors! 23 https://github.com/containerd/nerdctl/graphs/contributors