Linux 命令速查
云原生 man nerdctl

nerdctl

containerd 的 Docker 兼容命令行客户端

返回

补充说明

nerdctl 命令 是 containerd 社区官方提供的容器命令行客户端,目标是兼容 Docker CLI 的使用方式,让熟悉 docker 命令的用户可以直接用它操作 containerd 管理的容器。它是 Docker 与 containerd 生态之间的桥梁,常用于不使用 Docker daemon 而直接使用 containerd(如 k8s 运行时为 containerd)的宿主机上。

nerdctl 支持容器的完整生命周期管理:nerdctl run、nerdctl ps、nerdctl exec、nerdctl logs、nerdctl stop 等,并支持 nerdctl compose(实现 Docker Compose 的兼容子命令,无需单独安装 docker-compose 插件)。此外还能管理镜像、网络、卷,并通过 nerdctl build(基于 buildkit)构建镜像。

典型使用场景:在已部署 containerd 的节点上排查和管理容器;在 rootless 模式下运行容器;通过 nerdctl compose up -d 在 containerd 上直接拉起 Compose 服务栈。注意事项:nerdctl 依赖 containerd 的命名空间(默认 namespace 为 default,k8s 使用 k8s.io 命名空间,操作时可用 -n 指定);部分 Docker 私有扩展功能(如 docker swarm)不受支持。

语法

nerdctl [全局选项] 子命令 [参数]

选项

-n, --namespace=名称   # 指定 containerd 命名空间,默认 default
-a, --all             # 显示所有容器(含已退出)
-q, --quiet           # 只输出 ID
--address=路径         # containerd socket 路径(默认 /run/containerd/containerd.sock)

实例

# 运行一个容器并进入交互式 shell
nerdctl run -it --rm alpine sh

# 查看运行中的容器
nerdctl ps -a

# 在容器内执行命令
nerdctl exec -it myctr cat /etc/os-release

# 用 Compose 文件在 containerd 上启动服务栈
nerdctl compose -f docker-compose.yml up -d

# 构建镜像并查看镜像列表
nerdctl build -t myapp:v1 .
nerdctl images