摘要:nerdctl 是一个与 Docker 兼容的 containerd 命令行工具,在提供熟悉的用户体验的同时,还能解锁使用 containerd 的前沿功能。作为 containerd 的非核心子项目,nerdctl 在强大的 containerd 运行时与偏
nerdctl 是一个与 Docker 兼容的 containerd 命令行工具,在提供熟悉的用户体验的同时,还能解锁使用 containerd 的前沿功能。作为 containerd 的非核心子项目,nerdctl 在强大的 containerd 运行时与偏好 Docker CLI 界面的开发者之间架起了桥梁。
nerdctl 是一个命令行界面,提供与 Docker 相同的用户体验,但直接构建在行业标准容器运行时 containerd 之上。它被设计为 Docker CLI 命令的直接替代品,同时提供那些尚未进入 Docker 的实验性功能。
使用 nerdctl,您可以:
2.1 Docker 兼容
nerdctl 完全兼容 Docker 的 CLI 语法,使开发者能够轻松在两个工具之间切换。你可以使用熟悉的命令:
# nerdctl run -it --rm alpine # nerdctl build -t foo /some-dockerfile-directory # nerdctl compose -f ./docker-compose.yaml up这种兼容性扩展到 Docker Compose,允许你无需修改即可运行多容器应用程序。
2.2 nerdctl 与 crictl 相比
crictl 专为 Kubernetes CRI 兼容性设计,不支持那些使开发更简单的非 CRI 功能。
虽然 Docker 提供了完整的容器平台,但 nerdctl 专注于成为一个轻量级 CLI,直接利用 containerd,提供对实验性功能的访问和更模块化的架构。
# 下载最新版本 wget https://github.com/containerd/nerdctl/releases/download/v1.7.0/nerdctl-full-1.7.0-linux-amd64.tar.gz # 解压并安装 sudo tar -C /usr/local -xzf nerdctl-full-1.7.0-linux-amd64.tar.gz 选项2:包管理器对于 MacOS 用户,推荐办法是使用 Lima,它提供内置 nerdctl 支持的 Linux 虚拟机
brew install lima limactl start lima nerdctl run -d --name nginx -p 127.0.0.1:8080:80 nginx:alpine现在您已经安装了 nerdctl,让我们探索一些 Docker 用户熟悉的基本命令。
运行容器
# 运行交互式容器 nerdctl run -it --rm alpine # 在后台运行容器 nerdctl run -d --name nginx -p 8080:80 nginx:alpine # 列出运行中的容器 nerdctl ps # 停止并删除容器 nerdctl stop nginx nerdctl rm nginx构建镜像
nerdctl 与 BuildKit 集成,提供强大的镜像构建功能:
# 构建简单镜像 nerdctl build -t my-app ./path/to/dockerfile # 运行新构建的镜像 nerdctl run -it --rm my-app # 构建并导出到本地目录 nerdctl build -o type=local,dest=./output ./path/to/dockerfileDocker Compose 集成
nerdctl 的优势之一是其对 Docker Compose 的原生支持:
# 启动 compose 文件中定义的服务 nerdctl compose -f docker-compose.yaml up # 在分离模式下运行 compose nerdctl compose -f docker-compose.yaml up -d # 停止服务 nerdctl compose -f docker-compose.yaml down # 查看 compose 日志 nerdctl compose -f docker-compose.yaml logsnerdctl 提供了熟悉的 Docker 兼容界面,同时解锁了 containerd 的强大功能。无论您是希望尝试最新容器功能的开发人员,还是需要轻量级容器管理工具的系统管理员,nerdctl 都提供了一个引人注目的解决方案。
来源:不秃头程序员