Containerd容器运行时安装与配置指南

前言

Containerd是一个行业标准的容器运行时,作为Docker的核心组件之一,它也可以独立运行。相比完整的Docker引擎,Containerd更加轻量级,适合生产环境中需要精简容器管理组件的场景。本文将详细介绍如何在Linux系统上安装和配置Containerd容器运行时。

环境准备

在开始安装前,请确保:

  1. 系统为x86_64架构的Linux发行版
  2. 已卸载Docker(如需保留Docker请勿继续)
  3. 具有root权限

卸载Docker(可选)

如果系统中已安装Docker,建议先卸载以避免冲突:

./install-docker.sh r

如果脚本卸载不成功,建议使用全新的虚拟机环境。

Containerd安装步骤

1. 下载Containerd发行包

从官方GitHub仓库下载最新版本的Containerd:

wget https://github.com/containerd/containerd/releases/download/v1.7.20/cri-containerd-cni-1.7.20-linux-amd64.tar.gz

或者使用内部镜像源(如可用):

wget http://192.168.16.253/Linux92/Docker/day14-/softwares/cri-containerd-cni-1.7.13-linux-amd64.tar.gz

2. 解压软件包

tar xf cri-containerd-cni-1.7.13-linux-amd64.tar.gz

3. 部署Containerd运行时

将containerd二进制文件复制到系统目录:

cp usr/local/bin/containerd /usr/local/bin/

验证安装:

containerd -h

4. 配置Systemd服务

将systemd服务文件复制到正确位置:

cp etc/systemd/system/containerd.service /usr/lib/systemd/system/

5. 配置Containerd

5.1 创建配置目录

mkdir /etc/containerd

5.2 生成默认配置

containerd config default > /etc/containerd/config.toml

5.3 配置cgroup驱动

修改cgroup驱动为systemd,这是Kubernetes等编排系统的推荐配置:

sed -ri 's#(SystemdCgroup = )false#\1true#' /etc/containerd/config.toml

验证修改:

grep SystemdCgroup /etc/containerd/config.toml

5.4 配置Pause镜像

修改sandbox镜像为国内镜像源,加速容器启动:

sed -i 's#registry.k8s.io/pause:3.8#registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.8#' /etc/containerd/config.toml

验证修改:

grep sandbox_image /etc/containerd/config.toml

5.5 配置私有镜像仓库(可选)

对于企业环境,通常需要配置私有镜像仓库:

[plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.oldboyedu.com"]
  endpoint = [
    "https://harbor.oldboyedu.com"
  ]

6. 启动Containerd服务

启用并启动containerd服务:

systemctl enable --now containerd

检查服务状态:

systemctl status containerd

7. 安装客户端工具

7.1 安装ctr客户端

cp usr/local/bin/ctr /usr/bin/

验证安装:

ctr --version
ctr version

7.2 安装容器运行时组件

cp usr/local/bin/containerd-shim-runc-v2 /usr/bin/

验证安装

完成所有步骤后,可以通过以下命令验证Containerd是否正常工作:

ctr images pull docker.io/library/hello-world:latest
ctr run --rm docker.io/library/hello-world:latest hello

生产环境建议

  1. 资源限制:在config.toml中配置合理的资源限制
  2. 日志配置:配置日志轮转和级别
  3. 存储配置:根据需求调整存储驱动和root目录
  4. 网络配置:配置CNI插件以满足网络需求
  5. 安全加固:配置TLS认证和用户命名空间

常见问题排查

  1. 服务启动失败:检查journalctl -u containerd查看详细日志
  2. 镜像拉取失败:检查网络连接和镜像仓库配置
  3. 容器启动失败:检查runtime配置和cgroup设置

总结

Containerd作为轻量级的容器运行时,非常适合生产环境中需要精简容器管理组件的场景。通过本文的步骤,您已经成功安装并配置了一个生产可用的Containerd环境。后续可以根据实际需求进一步调整配置,或集成到Kubernetes等编排系统中使用。

如需更高级的功能,如快照管理、内容寻址存储等,可以进一步探索Containerd的强大功能。

posted on 2025-04-14 08:08  Leo-Yide  阅读(1194)  评论(0)    收藏  举报