使用apt仓库安装
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
删除旧版本
1
| for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
|
设置apt仓库
1 2 3 4 5 6 7 8 9 10 11 12 13
| sudo apt-get update sudo apt-get install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get -y update
|
安装Containerd.io
1
| sudo apt-get install -y containerd.io
|
启动
1 2
| systemctl enable containerd systemctl status containerd
|
修改配置
生成默认
1
| containerd config default > /etc/containerd/config.toml
|
配置systemd
cgroup 驱动
k8s官方推荐使用systemd类型的CgroupDriver
Containerd 1.x 版本:
1 2 3 4
| [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] ... [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] SystemdCgroup = true
|
Containerd versions 2.x 版本:
1 2 3 4
| [plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc] ... [plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc.options] SystemdCgroup = true
|
修改pause源
1 2 3 4
| [plugins."io.containerd.grpc.v1.cri"] ... sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10"
|
修改镜像源
1 2 3 4
| version = 3
[plugins."io.containerd.cri.v1.images".registry] config_path = "/etc/containerd/certs.d"
|
1 2 3 4
| version = 2
[plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d"
|
1 2 3 4 5 6 7 8 9
| mkdir -p /etc/containerd/certs.d/docker.io
cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF server = "https://docker.io"
[host."https://docker.1ms.run"] capabilities = ["pull", "resolve"]
EOF
|
1
| systemctl restart containerd
|
测试拉取镜像
1
| ctr images pull docker.io/library/nginx:latest --hosts-dir=/etc/containerd/certs.d
|
同步到其他节点
1 2 3 4 5 6
| scp -r /etc/containerd ubuntu@k8s-node-01:/tmp scp -r /etc/containerd ubuntu@k8s-node-02:/tmp
cp -r /tmp/containerd/* /etc/containerd/
systemctl restart containerd
|