nerdctl 是一个与 Docker 兼容的 CLI (命令行界面) 工具,它旨在用于 containerd (一个核心容器运行时) 。它通常用于替代或作为 docker CLI 的轻量级替代品,尤其是在基于 containerd 的环境中(比如某些 Kubernetes 发行版)。
介绍
containNERD CTL 是一个适用于 Containerd 的 Docker 兼容 CLI,支持 Compose、Rootless、eStargz、OCIcrypt、IPFS 等
安装
# 1. 设置变量(请检查 GitHub Release 页面获取最新版本号)
NERDCTL_VERSION="1.7.6"
ARCH=$(dpkg --print-architecture) # 获取当前架构 (如 amd64, arm64)
# 2. 下载压缩包
wget "https://github.com/containerd/nerdctl/releases/download/v${NERDCTL_VERSION}/nerdctl-full-${NERDCTL_VERSION}-linux-${ARCH}.tar.gz"
# 3. 解压到 /usr/local/
sudo tar Cxzfv /usr/local "nerdctl-full-${NERDCTL_VERSION}-linux-${ARCH}.tar.gz"
# 4. 清理下载的文件
rm "nerdctl-full-${NERDCTL_VERSION}-linux-${ARCH}.tar.gz"
# 查看版本
nerdctl version
替代 docker 命令
#!/bin/bash
nerdctl --namespace k8s.io $@
说明:
--namespace k8s.io:指定 nerdctl 应该操作名为 k8s.io 的 containerd 命名空间,这个命名空间通常是 Kubernetes 集群用来存储和管理其工作负载容器的地方
$@:代表所有传递给这个脚本的命令行参数
运行:
docker <command> <options>
# 比如:docker run -d nginx
相当于:
nerdctl --namespace k8s.io <command> <options>
# 比如:nerdctl --namespace k8s.io run -d nginx