Cube-Studio项目中Containerd容器运行时的安装与配置指南
前言
在Cube-Studio项目中,Containerd作为容器运行时扮演着重要角色。本文将详细介绍在Ubuntu和CentOS系统上安装配置Containerd的全过程,帮助用户为Cube-Studio项目搭建稳定的容器运行环境。
环境准备
在开始安装前,请确保:
- 系统为Ubuntu或CentOS
- 拥有root或sudo权限
- 网络连接正常
一、卸载旧版本容器运行时
为避免冲突,建议先卸载系统中可能存在的旧版本容器运行时:
sudo apt-get remove -y docker docker-engine docker.io containerd runc
sudo rm -rf /var/lib/docker /etc/docker/
sudo rm -rf /var/lib/containerd /etc/containerd/
二、Ubuntu系统安装Containerd
1. 配置国内镜像源(阿里云)
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
2. 更新软件源并安装
sudo apt-get update
apt-cache madison containerd # 查看可用版本
sudo apt-get install -y containerd.io # 安装最新稳定版
# 或指定版本:sudo apt-get install containerd=<VERSION>
3. 启动并设置开机自启
systemctl start containerd
systemctl enable containerd
systemctl status containerd # 验证状态
三、CentOS系统安装Containerd
yum update -y
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install containerd.io
systemctl start containerd
systemctl enable containerd
systemctl status containerd
四、Containerd核心配置
1. 生成默认配置文件
mkdir /etc/containerd
containerd config default | tee /etc/containerd/config.toml
2. 关键配置项修改
修改sandbox镜像地址
sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.8"
CentOS系统需配置cgroup驱动
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
配置镜像加速源
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
创建镜像加速配置:
mkdir -p /etc/containerd/certs.d/docker.io
tee /etc/containerd/certs.d/docker.io/hosts.toml << 'EOF'
server = "https://docker.io"
[host."https://docker.1panel.live"]
capabilities = ["pull", "resolve"]
[host."https://hub.rat.dev/"]
capabilities = ["pull", "resolve"]
[host."https://docker.chenby.cn"]
capabilities = ["pull", "resolve"]
[host."https://docker.m.daocloud.io"]
capabilities = ["pull", "resolve"]
EOF
配置私有镜像仓库
mkdir -p /etc/containerd/certs.d/172.17.0.4:88
tee /etc/containerd/certs.d/172.17.0.4:88/hosts.toml << 'EOF'
server = "http://172.17.0.4:88"
[host."http://172.17.0.4:88"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
EOF
3. 重启生效配置
systemctl daemon-reload
systemctl restart containerd
五、安装nerdctl工具
nerdctl是Containerd的CLI工具,安装步骤:
- 根据Containerd版本选择兼容的nerdctl版本
- 下载并安装:
version=1.7.6
wget https://githubfast.com/containerd/nerdctl/releases/download/v${version}/nerdctl-${version}-linux-amd64.tar.gz
tar zxvf nerdctl-${version}-linux-amd64.tar.gz -C /usr/local/bin
- 配置nerdctl:
mkdir -p /etc/nerdctl/
cat > /etc/nerdctl/nerdctl.toml << 'EOF'
namespace = "k8s.io"
insecure_registry = true
EOF
六、安装构建工具BuildKit
- 下载对应版本:
version=v0.15.1
wget https://githubfast.com/moby/buildkit/releases/download/${version}/buildkit-${version}.linux-amd64.tar.gz
tar zxvf buildkit-${version}.linux-amd64.tar.gz -C /usr/local/
- 创建systemd服务:
[Unit]
Description=BuildKit
[Service]
ExecStart=/usr/local/bin/buildkitd --oci-worker=false --containerd-worker=true
[Install]
WantedBy=multi-user.target
- 启动服务:
systemctl enable buildkit --now
七、安装CNI网络插件
- 下载并安装CNI插件:
mkdir -p /opt/cni/bin
wget https://githubfast.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
sudo tar -C /opt/cni/bin -xzvf cni-plugins-linux-amd64-v1.1.1.tgz
- 创建网络配置文件:
{
"cniVersion": "1.0.0",
"name": "bridge",
"type": "bridge",
"bridge": "cni0",
"isGateway": true,
"ipMasq": true,
"ipam": {
"type": "host-local",
"ranges": [
[{"subnet": "10.22.0.0/16"}]
],
"routes": [
{"dst": "0.0.0.0/0"}
]
}
}
- 更新Containerd配置:
[plugins."io.containerd.grpc.v1.cri".cni]
conf_dir = "/etc/cni/net.d"
bin_dir = "/opt/cni/bin"
- 重启服务:
systemctl daemon-reload
systemctl restart containerd
常见问题解决
- 镜像拉取失败:可尝试在镜像名前加上
docker.anyhub.us.kg/library/
前缀 - 网络问题:确保CNI配置正确且网络插件已安装
- 版本兼容性:注意Containerd、nerdctl和BuildKit的版本匹配
通过以上步骤,您已成功为Cube-Studio项目配置了完整的Containerd容器运行时环境,包括必要的工具和网络组件。这将为后续的Cube-Studio部署和使用提供坚实的基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考