1. 修改主配置文件
如果/etc/containerd/config.toml不存在,先生成默认配置:
containerd config default > /etc/containerd/config.toml编辑文件,找到[plugins."io.containerd.grpc.v1.cri".registry]部分,添加config_path指向镜像仓库配置目录:
[plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d"这样后续的镜像源配置会放在
/etc/containerd/certs.d/目录下
2. 配置镜像加速源
建议为常用源(如 Docker Hub、K8s 官方、GCR、GHCR 等)分别创建hosts.toml文件
示例:Docker Hub 加速
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.xuanyuan.me"] capabilities = ["pull", "resolve"] [host."https://docker.1panel.live"] capabilities = ["pull", "resolve"] EOF示例:K8s 官方镜像加速
mkdir -p /etc/containerd/certs.d/registry.k8s.io cat > /etc/containerd/certs.d/registry.k8s.io/hosts.toml << 'EOF' server = "https://registry.k8s.io" [host."https://k8s.m.daocloud.io"] capabilities = ["pull", "resolve", "push"] EOF其他常用源(可参考 DaoCloud、阿里云 ACR、轩辕镜像等)
docker.elastic.co→elastic.m.daocloud.iogcr.io→gcr.m.daocloud.ioghcr.io→ghcr.m.daocloud.iomcr.microsoft.com→mcr.m.daocloud.ionvcr.io→nvcr.m.daocloud.ioquay.io→quay.m.daocloud.io
3. 重启 containerd
systemctl daemon-reload systemctl restart containerdhosts.toml 支持热加载,但重启最稳妥
4. 验证配置
使用crictl测试拉取:
crictl pull nginx:latest crictl pull registry.k8s.io/pause:3.9如果提示Image is up to date或下载速度快,说明配置成功
5. 注意事项
命名空间:K8s 镜像默认在
k8s.io命名空间,使用ctr -n k8s.io拉取腾讯云加速源维护:免费加速源可能失效,建议定期更换或使用自建 Registry 缓存腾讯云
批量部署:可写脚本批量配置多台节点腾讯云
这样配置后,containerd 就能自动走国内加速源,大幅提高镜像拉取速度,尤其适合国内网络环境