一、版本信息(2026 年最新)
当前最新版本
- containerd 2.2.2(测试版,不推荐生产)
生产环境主流稳定版本
| 版本系列 | 国内生产首选 | 推荐理由 |
|---|---|---|
| 2.1.x | ✅ 首选 | 最新稳定支持,功能新、性能优 |
| 1.7.x | ✅ 备选 | 超稳定,兼容所有老旧 K8s 集群 |
本文安装:2.1.6(国内生产环境 90% 选用)
二、环境准备(所有 Linux 系统通用,必须执行)
1. 系统基础要求
- Linux:Ubuntu 20.04/22.04、CentOS 7/8、RHEL 7/8
- 关闭 SELinux、禁用 swap(K8s 环境强制要求)
- 内核≥4.19(执行
uname -r查看)
2. 安装基础依赖(国内源)
# Ubuntu/Debian 系统执行
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# CentOS/RHEL 系统执行
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3. 内核参数优化(容器网络必需)
# 创建内核参数配置文件
cat <<EOF | sudo tee /etc/sysctl.d/99-containerd.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
# 立即生效配置
sudo sysctl --system
4. 检查 cgroup 驱动(生产必备)
# 查看系统init方式(输出systemd为正常)
ps -p 1 -o comm=
# 查看cgroup版本(cgroupv2优先,无则用v1)
ls /sys/fs/cgroup/cgroup.controllers && echo "cgroupv2已启用" || echo "使用cgroupv1"
三、生产推荐安装:包管理器安装(阿里云国内源,100% 可用)
👉 方式 1:Ubuntu/Debian 系统安装
步骤 1:添加阿里云 GPG 密钥(国内专用)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/aliyun-docker.gpg
步骤 2:添加阿里云 Docker 软件源(替换官方源)
# Ubuntu 22.04 (jammy) 执行
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable"
# Ubuntu 20.04 (focal) 执行
# sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable"
步骤 3:更新源并安装 containerd(生产版 2.1.6)
sudo apt update
sudo apt install -y containerd.io=2.1.6-1
👉 方式 2:CentOS/RHEL 系统安装
步骤 1:添加阿里云 Docker 源(国内专用)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
步骤 2:安装 containerd(生产版 2.1.6)
# CentOS 8 / RHEL 8
sudo yum install -y containerd.io-2.1.6-1.el8
# CentOS 7 / RHEL 7
# sudo yum install -y containerd.io-2.1.6-1.el7
四、核心配置(超详细,自动修改,无需手动编辑)
1. 生成默认配置文件
# 创建配置目录
sudo mkdir -p /etc/containerd
# 生成默认配置
containerd config default | sudo tee /etc/containerd/config.toml
2. 自动修改生产关键配置(一键执行)
作用:开启 systemd cgroup、配置国内镜像加速 、优化沙箱镜像,解决国内拉取镜像失败问题
# 1. 设置cgroup驱动为systemd(生产强制要求)
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
# 2. 配置国内镜像加速(阿里云+网易云+百度云,全可用)
sudo sed -i '/\[plugins."io.containerd.grpc.v1.cri".registry.mirrors\]/a\ [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]\n endpoint = ["https://registry.cn-hangzhou.aliyuncs.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com"]' /etc/containerd/config.toml
# 3. 替换国内pause沙箱镜像(K8s环境必需)
sudo sed -i 's#sandbox_image = ".*"#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10"#g' /etc/containerd/config.toml
3. 启动 containerd 并设置开机自启
# 重载systemd配置
sudo systemctl daemon-reload
# 开机自启 + 立即启动
sudo systemctl enable --now containerd
# 检查服务状态(显示active (running) 为成功)
sudo systemctl status containerd
五、安装必备插件(国内代理下载,100% 可用)
1. 安装 CNI 网络插件(容器联网必需)
# 下载(GitHub国内代理)
wget https://ghproxy.com/https://github.com/containernetworking/plugins/releases/download/v1.4.0/cni-plugins-linux-amd64-v1.4.0.tgz
# 创建安装目录
sudo mkdir -p /opt/cni/bin
# 解压安装
sudo tar -C /opt/cni/bin -xzf cni-plugins-linux-amd64-v1.4.0.tgz
2. 安装 nerdctl(Docker 兼容工具,生产首选)
替代 ctr 命令,命令和 Docker 完全一样,零学习成本
# 下载(国内代理)
wget https://ghproxy.com/https://github.com/containerd/nerdctl/releases/download/v1.7.2/nerdctl-1.7.2-linux-amd64.tar.gz
# 解压到系统命令目录
sudo tar -C /usr/local/bin -xzf nerdctl-1.7.2-linux-amd64.tar.gz
# 验证安装(输出版本即为成功)
nerdctl -v
3. 安装 crictl(K8s 环境专用)
# 下载(国内代理)
wget https://ghproxy.com/https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-amd64.tar.gz
# 解压安装
sudo tar -C /usr/local/bin -xzf crictl-v1.29.0-linux-amd64.tar.gz
# 配置连接containerd
echo "runtime-endpoint: unix:///run/containerd/containerd.sock" | sudo tee /etc/crictl.yaml
# 验证
crictl version
- CNI 插件 :只要解压到
/opt/cni/bin→ 自动工作,不用配置 - nerdctl :只要解压到
/usr/local/bin→ 自动工作,不用配置
六、Containerd 详细使用教程(nerdctl,Docker 同款命令)
1. 镜像管理(国内秒拉取)
# 拉取nginx镜像(国内加速,无需科学上网)
nerdctl pull nginx:alpine
# 查看本地所有镜像
nerdctl images
# 删除镜像
nerdctl rmi nginx:alpine
2. 容器创建与管理(核心操作)
# 后台运行nginx容器,映射端口8080:80,命名my-nginx
nerdctl run -d --name my-nginx -p 8080:80 nginx:alpine
# 查看运行中的容器
nerdctl ps
# 查看所有容器(含停止的)
nerdctl ps -a
3. 容器日常操作
# 进入容器终端
nerdctl exec -it my-nginx sh
# 查看容器日志
nerdctl logs my-nginx
# 实时查看日志
nerdctl logs -f my-nginx
# 停止容器
nerdctl stop my-nginx
# 启动已停止的容器
nerdctl start my-nginx
# 删除容器(必须先停止)
nerdctl rm my-nginx
4. 生产环境高级操作
# 限制容器CPU 1核、内存512M
nerdctl run -d --name my-nginx --cpus 1 --memory 512m nginx:alpine
# 挂载数据卷(持久化存储)
nerdctl volume create nginx-volume
nerdctl run -d -v nginx-volume:/usr/share/nginx/html --name my-nginx nginx:alpine
# 查看容器详细信息
nerdctl inspect my-nginx
# 导出/导入镜像(离线传输)
nerdctl save -o nginx.tar nginx:alpine
nerdctl load -i nginx.tar
5. containerd 服务管理
# 重启服务(修改配置后必执行)
sudo systemctl restart containerd
# 查看服务日志(排查问题用)
sudo journalctl -u containerd -f
# 停止服务
sudo systemctl stop containerd
七、生产环境最终验证(确保安装成功)
-
检查 containerd 版本
containerd -v # 输出 containerd 2.1.6 即为成功
-
运行测试容器
nerdctl run --rm hello-world # 输出Hello from Docker! 即为完全正常