containerd 配置镜像加速

Containerd配置镜像加速

参考文档

修改步骤

1. 修改Config.toml文件

1.x.x 版本配置文件

[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d" # 镜像地址配置文件
[plugins."io.containerd.grpc.v1.cri".registry.auths]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.headers]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]

2.x.x 版本配置文件

[plugins.'io.containerd.cri.v1.images'.registry]
config_path = '/etc/containerd/certs.d'

2. 创建相应目录

mkdir /etc/containerd/certs.d/docker.io -pv

3. 配置加速

cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://xxxxxxxx.mirror.aliyuncs.com"]
capabilities = ["pull", "resolve"]
EOF

4. 重启Containerd

systemctl daemon-reload
systemctl restart containerd

5. 重新拉取镜像

# 使用 ctr 命令拉取镜像时不会生效
crictl pull docker.io/library/mysql:latest

配置镜像加速脚本

在2.x.x版本后不再适用

#!/usr/bin/env bash
# author: liy
# file: containerd_mirrors.sh
#
export PS4='\[\e[35m\]+ $(basename $0):${FUNCNAME}:$LINENO: \[\e[0m\]'
[ "$debug" == "true" -o "$debug" == "yes" ] && set -x
config_file="/etc/containerd/config.toml"
config_path='/etc/containerd/certs.d'
if [ ! -f "${config_file}" ];then
[ ! -d "${config_file%/*}" ] && mkdir -p ${config_file%/*}
lineno="$(containerd config default | grep -n -A 1 -P '(?<=\[plugins.")io.containerd.grpc.v1.cri(?=".registry])'|tail -1)"
lineno=${lineno/-*}
containerd config default | sed -e "${lineno}s@config.*@config_path = \"${config_path}\"@" |sed '/SystemdCgroup/s/false/true/' > $config_file
fi
[ ! -d "${config_path}" ] && mkdir -p ${config_path}
params="${@:-registry.k8s.io:k8s.m.daocloud.io docker.io:docker.m.daocloud.io gcr.io:gcr.m.daocloud.io k8s.gcr.io:k8s.m.daocloud.io quay.io:quay.m.daocloud.io}"
function content(){
printf 'server = "https://%s"\n' "${registry}"
printf '[host."https://%s"]\n' "${proxy_server}"
printf ' capabilities = ["pull", "resolve"]'
}
for param in ${params}
do
registry="${param/:*/}"
proxy_server="${param/*:/}"
hosts_path="$config_path/$registry"
[ ! -d "$hosts_path" ] && mkdir -p ${hosts_path}
content > $hosts_path/hosts.toml
done
# 默认加速 registry.k8s.io, docker.io, gcr.io, k8s.gcr.io
debug=true bash containerd_mirrors.sh
posted @   liy36  阅读(6310)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示