一、nerdctl 是什么?

nerdctl 是一个和 Docker CLI 用法高度兼容的容器命令行工具,但它是基于 containerd 的。

简单理解:

🐳 Docker = Docker CLI + Docker Engine(底层也是 containerd)

⚙️ nerdctl = 直接对接 containerd 的 CLI 工具

☸️ 在 Kubernetes / k8s 环境中,containerd 很常见,所以 nerdctl 很有用

二、nerdctl 和 Docker 的关系

对比项Dockernerdctl
底层运行时containerdcontainerd
守护进程dockerdcontainerd
CLI兼容性官方高度兼容 docker
Kubernetes 适配已逐步弱化原生友好
rootless支持支持更好

在很多云原生环境(尤其是 Kubernetes 使用 containerd 作为 CRI)下,nerdctl 是非常好的替代工具。

三、常用命令(和 Docker 基本一致)

1️⃣ 拉取镜像

nerdctl pull nginx

2️⃣ 查看镜像

nerdctl images

3️⃣ 运行容器

nerdctl run -d nginx

带端口映射:

nerdctl run -d -p 8080:80 nginx

使用 host 网络(你之前问过):

nerdctl run -d --network host nginx

4️⃣ 查看运行中的容器

nerdctl ps

查看全部:

nerdctl ps -a

5️⃣ 进入容器

nerdctl exec -it <container_id> /bin/bash

6️⃣ 停止 & 删除容器

nerdctl stop <container_id>
nerdctl rm <container_id>

7️⃣ 删除镜像

nerdctl rmi <image_id>

更多推荐