Containerd 完整部署安装与使用指南

一、版本信息(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

七、生产环境最终验证(确保安装成功

  1. 检查 containerd 版本

    containerd -v # 输出 containerd 2.1.6 即为成功

  2. 运行测试容器

    nerdctl run --rm hello-world # 输出Hello from Docker! 即为完全正常

相关推荐
苏渡苇15 小时前
Docker 网络完全指南
网络·docker·容器·docker容器·容器通信
风向决定发型丶15 小时前
K8S CPU绑核详解
云原生·容器·kubernetes
斯普信云原生组17 小时前
Docker 开源软件应急处理方案及操作手册——镜像管理与构建故障
docker·容器·eureka
MichealChen01050819 小时前
Influxdb-cluster使用docker部署
运维·docker·容器
斯普信云原生组20 小时前
Docker 开源软件应急处理方案及操作手册——安全漏洞与权限问题
运维·docker·容器
斯普信云原生组1 天前
Docker 开源软件应急处理方案及操作手册——容器运行异常处理
docker·容器·eureka
摆烂z1 天前
对外访问网络限制*.aliyuncs.com开放也拉不下来和查看docker容器结构
运维·docker·容器
斯普信云原生组1 天前
Docker 开源软件应急处理方案及操作手册——资源限制与性能瓶颈
docker·容器·eureka
恼书:-(空寄1 天前
Docker 进阶核心实战:自定义镜像 + Dockerfile + Docker Compose
docker·容器·docker compose