containerd容器安装
·
1、更新时间-2025年12月29日
使用系统类型:openEuler-24.03-LTS-x86_64-dvd
# 查询登录信息
[root@openEuler ~]# who
root pts/0 2025-12-29 22:40 (192.168.113.1)
# 查询内核版本、主机名、系统架构
[root@openEuler ~]# uname -a
Linux openEuler 6.6.0-28.0.0.34.oe2403.x86_64 #1 SMP Mon May 27 22:22:46 CST 2024 x86_64 x86_64 x86_64 GNU/Linux
# 查询发行版详细信息(版本、ID 等)
[root@openEuler ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"
添加docker-ce软件仓库(华为云镜像源)
tee /etc/yum.repos.d/docker-ce.repo <<EOF
[docker-ce-stable]
name=Docker CE Stable-\$basearch
baseurl=https://mirrors.huaweicloud.com/docker-ce/linux/centos/9/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/docker-ce/linux/centos/gpg
EOF
安装containerd软件包
# 安装命令和结果
[root@openEuler ~]# dnf install -y containerd.io-1.6.20-3.1.el9.x86_64
Docker CE Stable-x86_64 11 kB/s | 65 kB 00:06
Last metadata expiration check: 0:00:04 ago on 2025年12月29日 星期一 23时18分01秒.
Dependencies resolved.
=======================================================================
Package Arch Version Repository Size
=======================================================================
Installing:
containerd.io x86_64 1.6.20-3.1.el9 docker-ce-stable 33 M
Installing dependencies:
container-selinux noarch 2:2.230.0-1.oe2403 OS 45 k
Transaction Summary
=======================================================================
Install 2 Packages
Total download size: 33 M
Installed size: 114 M
Downloading Packages:
(1/2): container-selinux-2.230.0-1.oe2 20 kB/s | 45 kB 00:02
(2/2): containerd.io-1.6.20-3.1.el9.x8 7.1 MB/s | 33 MB 00:04
-----------------------------------------------------------------------
Total 7.1 MB/s | 33 MB 00:04
Docker CE Stable-x86_64 2.5 kB/s | 1.6 kB 00:00
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
From : https://mirrors.huaweicloud.com/docker-ce/linux/centos/gpg
Key imported successfully
retrieving repo key for OS unencrypted from http://repo.openeuler.org/openEuler-24.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
OS 1.6 kB/s | 3.0 kB 00:01
Importing GPG key 0xB675600B:
Userid : "openeuler <openeuler@compass-ci.com>"
Fingerprint: 8AA1 6BF9 F2CA 5244 010D CA96 3B47 7C60 B675 600B
From : http://repo.openeuler.org/openEuler-24.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: container-selinux-2:2.230.0-1.oe2403.noarch 1/2
Installing : container-selinux-2:2.230.0-1.oe2403.noarch 1/2
Running scriptlet: container-selinux-2:2.230.0-1.oe2403.noarch 1/2
Installing : containerd.io-1.6.20-3.1.el9.x86_64 2/2
Running scriptlet: containerd.io-1.6.20-3.1.el9.x86_64 2/2
Running scriptlet: container-selinux-2:2.230.0-1.oe2403.noarch 2/2
Running scriptlet: containerd.io-1.6.20-3.1.el9.x86_64 2/2
Verifying : containerd.io-1.6.20-3.1.el9.x86_64 1/2
Verifying : container-selinux-2:2.230.0-1.oe2403.noarch 2/2
Installed:
container-selinux-2:2.230.0-1.oe2403.noarch
containerd.io-1.6.20-3.1.el9.x86_64
Complete!
[root@openEuler ~]#
生成一份标准的containerd配置文件(配置初始化)
containerd config default | tee /etc/containerd/config.toml
修改/etc/containerd/config.toml配置文件
# 搜索这两个字段,改成true
SystemdCgroup = true
systemd_cgroup = true
# 搜索sandbox_image修改镜像源
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
# 设置镜像加速器路径 config_path
config_path = "/etc/containerd/certs.d"

配置镜像加速器
# 创建目录结构
mkdir -p /etc/containerd/certs.d/docker.io
# 创建hosts.toml配置文件
tee /etc/containerd/certs.d/docker.io/hosts.toml <<EOF
server = "https://registry-1.docker.io"
[host."https://docker.1ms.run"]
capabilities = ["pull", "resolve"]
skip_verify = true
[host."https://dockerhub.azk8s.cn"]
capabilities = ["pull", "resolve"]
skip_verify = true
EOF
检查是否创建成功了子配置:cat /etc/containerd/certs.d/docker.io/hosts.toml
[root@localhost containerd]# cat /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://registry-1.docker.io"
[host."https://docker.1ms.run"]
capabilities = ["pull", "resolve"]
skip_verify = true
[host."https://dockerhub.azk8s.cn"]
capabilities = ["pull", "resolve"]
skip_verify = true
[root@localhost containerd]#
为 crictl 配置 containerd 的 socket:crictl 是一个用于与 CRI(容器运行时接口)交互的命令行工具,K8s 调试必备。需要告诉它 containerd 的通信地址(为了使用crictl命令拉取containerd镜像,必须要配置这个)
cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: false
EOF
配置完成后升级runc:sudo dnf install -y runc
启动 containerd 并设置开机自启:systemctl enable containerd --now
查看状态:systemctl status containerd

安装三个,可以为K8S做准备,也可用crictl命令pull镜像
设置K8S安装源
tee /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装K8S组件:dnf install -y kubeadm-1.28.2 kubelet-1.28.2 kubectl-1.28.2

查看crictl信息和配置:crictl info
# CNI 网络插件基础配置
"cniconfig": {
"PluginDirs": ["/opt/cni/bin"], // CNI插件二进制文件存放目录(比如flannel/calico的可执行文件放这)
"PluginConfDir": "/etc/cni/net.d", // CNI网络配置文件目录(部署网络插件后,这里会生成*.conf文件)
"Networks": [{"Name": "cni-loopback", "IFName": "lo"}] // 默认的回环网络(仅本地lo接口,无实际集群网络)
}
# CNI 插件路径配置
"cni": {
"binDirs": ["/opt/cni/bin"], // 和cniconfig的PluginDirs一致,CNI插件二进制路径
"confDir": "/etc/cni/net.d" // CNI配置文件路径
}
# 其他关键配置
"containerdRootDir": "/var/lib/containerd", // containerd的持久化数据目录(存放镜像、容器数据)
"containerdEndpoint": "/run/containerd/containerd.sock", // containerd的sock文件路径(kubelet/crictl通信的地址)
"rootDir": "/var/lib/containerd/io.containerd.grpc.v1.cri", // CRI插件的根目录(存放CRI相关数据)
"stateDir": "/run/containerd/io.containerd.grpc.v1.cri" // CRI插件的运行时状态目录(临时文件)
更多推荐
所有评论(0)