nerdctl 2.0(ナードシーティーエルツーゼロ)
2024年Rancher Lab公開containerd CLI 2.0 GA。Docker互換構文+Rootless+Lazy-pulling Image+IPFS Image+CNI Plugin+Buildkit統合+Compose対応搭載。
概要
nerdctl 2.0は2024年Rancher Labs(SUSE傘下)が公開したcontainerd向けCLI 2.0 GAで、Docker CLI互換構文を採用しつつ、containerdの全機能をフル活用するNo-frills Container CLI。「nerd-control(ナード制御)」のネーミング通り、 containerd の Native CLI(ctr) より高水準の使い勝手を提供しつつ、Dockerに比べてLightweight+Rootless標準対応のシンプル設計。nerdctl run/nerdctl ps/nerdctl build/nerdctl compose等のDocker CLI互換コマンドを提供し、Docker → nerdctl 移行はゼロ学習コスト。containerd 2.0(2024-11)とほぼ同時期にGA、Lazy-pulling Image・IPFS Image分散・CNI Plugin Native・Buildkit統合・Rootless Mode Default等、 Docker にはない先進的機能を備える。Rancher Desktop(Rancher Labs製Docker Desktop代替)で標準採用され、 Rootless Container Fan + IPFS Image分散実験者+Containerd直接活用ユーザー向けのCLI。
主な特徴・仕組み
- Docker CLI互換: nerdctl run/ps/exec/build等のコマンド、 Docker から学習コストゼロ移行
- containerd Native: Docker Engine 不要、 containerd 2.0 直接利用
- Rootless Mode Default: 非root権限で動作、Container逃げ出し攻撃面減
- Lazy-pulling Image: stargz/zstd:chunked Image形式対応、 Cold Start高速化
- IPFS Image分散: ipfs:// scheme でImage P2P分散、Centralized Registry依存軽減
- CNI Plugin Native: bridge/macvlan/ipvlan等のCNI Plugin直接対応
- Buildkit統合: nerdctl build で BuildKit Native利用、 docker build と互換
- Compose対応: nerdctl compose でDocker Compose互換、 compose.yaml そのまま利用
- OCI Image Encryption: containerd 2.0 Image Encryption活用、 Secret Image
- Cross-platform: Linux/Mac(Lima経由)/Windows(WSL2経由) で動作
- Single Binary: Go製単一バイナリ、Docker Engine比でLightweight
スペック比較表
| 項目 | nerdctl 2.0 | Docker | Podman 5.0 | crictl |
|---|---|---|---|---|
| Backend | containerd | containerd(内部) | libpod(独自) | containerd/CRI-O |
| Daemon | containerd | dockerd | Daemonless | containerd |
| Rootless Default | ○ | △ Optional | ○ | × |
| Docker互換 | ○ Full | ○ Native | ○ Compatible Layer | × CRI専用 |
| Lazy-pulling | ○ stargz/zstd | × | × | × |
| IPFS分散 | ○ | × | × | × |
| CNI Plugin Native | ○ | △(CNM) | ○ | ○ |
| Compose対応 | ○ | ○ Native | ○ podman-compose | × |
| 学習コスト | 低(Docker互換) | (基準) | 低-中 | 高(K8s知識) |
具体例・対応製品
# Docker互換コマンド
$ nerdctl pull nginx:latest
$ nerdctl run -d --name web -p 8080:80 nginx
$ nerdctl ps
$ nerdctl exec -it web /bin/bash
# Rootless Mode
$ nerdctl --rootless run -d nginx # Default Rootless
# Lazy-pulling Image(stargz)
$ nerdctl pull --snapshotter=stargz ghcr.io/stargz-containers/python:3.10-org
# IPFS Image
$ nerdctl pull ipfs://QmXxxxx... # P2P Image取得
# Compose
$ nerdctl compose up -d
$ nerdctl compose ps
# Build with BuildKit
$ nerdctl build -t myapp:latest .
$ nerdctl buildx --platform linux/amd64,linux/arm64 -t myapp .
- nerdctl 2.0 GA 2024: Rancher Labs/SUSE主導、CNCF Sandbox Project
- Rancher Desktop: nerdctl 標準採用、Docker Desktop 代替
- containerd 2.0: 標準Backend、Lazy-pulling+Image Encryption活用
- Lima(Linux Machine): macOS でnerdctl + containerd実行、Docker Desktop代替
- 競合機種: Docker(containerd内部利用)、Podman 5.0(独自libpod)、crictl(CRI-O/containerd CRI専用)、ctr(containerd Native CLI)
自作PCでの選び方・注意点
nerdctl 2.0は Container CLI の選択肢として、Docker / Podman / crictl と並ぶ重要な選択肢で、自作PCのMonitoring/Server用途で価値発揮。jisaku.com の VPS API(Coolify管理)はDocker Engine 採用で、nerdctl 直接利用は不要だが、 Rancher Desktop採用するMacBookでの Local 開発+ Lazy-pulling Image高速 Cold Start メリット享受可能。Docker Desktop の Pricing(企業利用は$5/user/month〜)に対する代替として、 Rancher Desktop + nerdctl はOSS無料+Docker互換の現実的選択肢で、技術選好+コスト最適化Bothで価値あり。Lazy-pulling Image(stargz/zstd:chunked)はContainer Cold Start を10倍高速化する技術で、 Serverless Container(AWS Fargate/Google Cloud Run等)で重要、jisaku.com Production環境(VPS Always-on)では効果薄い。IPFS Image分散はDocker Hub/GHCR等のCentralized Registry依存軽減+P2P分散の実験的機能で、Production採用は時期尚早。Rootless Mode Default は Security重視Linuxサーバ運用で価値発揮、Hosting企業・Multi-tenant SaaS Backend で本格採用が進む。日本国内の nerdctl 採用は限定的で、Container/Cluster管理者+技術志向の Backend Engineer中心。
関連用語との違い
Dockerとの違い: DockerはDaemon型(dockerd)+Docker独自Ecosystem、 nerdctl はDaemonless+containerd Native+Docker互換構文。Docker互換性は nerdctl 完璧、Migration は$ alias docker=nerdctl で大半の使用感そのまま。Docker Pricing 回避目的で nerdctl 採用が増加傾向。 Podman 5.0との違い: Podman は Red Hat独自libpod Backend+Daemonless+Docker Compatible Layer、 nerdctl は containerd Backend+Daemonless+Docker互換 Native。Backend技術選好で住み分け、両者ともに Docker代替候補。
よくある質問(FAQ)
Q1: Docker から nerdctl 移行する価値は? A: コスト + Lazy-pulling + Rootless Default の3点で価値あり。Docker Desktop Pricing(企業$5/user/month)を回避+Cold Start高速化+Security強化を一度に得られる。Docker互換性高く Migration コスト低、Linux サーバ + Mac Local の両環境でメリット。
Q2: Lazy-pulling Image はどう使う?
A: stargz Image を --snapshotter=stargz Pull、 Container起動時に必要なLayer のみ先行 Pull。1GB Image でも Container Start まで数秒で到達、AWS Fargate / Google Cloud Run 等のCold Start クリティカル環境で価値絶大。Pre-conversion Tool(stargzify)で既存 Image を stargz化可能。
Q3: Rancher Desktop と Docker Desktop どちらを選ぶ? A: コスト+OSS優先 → Rancher Desktop+nerdctl、 Mac Native体験+Vendor Support重視 → Docker Desktop。技術検証+Linux/Cluster経験者は Rancher Desktop が学習価値高い、 macOS 一般 Backend Engineer は Docker Desktop の方が無難。
まとめ
- nerdctl 2.0 = 2024年Rancher Labs公開containerd向けCLI 2.0 GA
- Docker CLI互換+Rootless Default+Lazy-pulling+IPFS+BuildKit統合
- Rancher Desktop標準、Docker Desktop代替の現実的選択肢
- Linux/Mac(Lima)/Windows(WSL2)でクロス対応
- Container/Cluster管理者+Security重視Backend Engineer向け