K8s containerd 镜像配置教程
适用于使用 containerd 的系统,如 Kubernetes(k3s / cri-o)或自建 containerd 环境,支持通过配置专属镜像域名专属域名提升镜像拉取速度、可控性与可用性。本教程同时支持 containerd v1.x 和 v2.x 版本,请根据您的版本选择对应的配置方式。
1适用版本
本手册适用于以下 containerd 版本,请先确认您的版本:
| containerd 版本 | 配置方式 | 说明 |
|---|---|---|
| < 1.4 | 不支持 | 语法不同 |
| 1.4 ~ 1.7.x | config.toml | 完全支持(见下方 v1.x 配置) |
| ≥ 1.7.x (v1.x) | config.toml | 推荐使用(见下方 v1.x 配置) |
| ≥ 2.0 (v2.x) | hosts.toml | 配置方式不同(见下方 v2.x 配置) |
请使用以下命令查看版本:
containerd --version
2配置文件路径(v1.x)
containerd 的默认配置文件为:
/etc/containerd/config.toml
如未生成此文件,可使用以下命令初始化默认配置:
containerd config default > /etc/containerd/config.toml
3镜像源配置示例(v1.x)
请在 config.toml 中添加以下配置(位于 plugins."io.containerd.grpc.v1.cri".registry.mirrors 节点):
💡重要提示:请将配置中的 xxx 替换为您的专属域名前缀。例如,如果您的专属域名为 123abc.xuanyuan.run,则应将 xxx 替换为 123abc。
说明:多个 endpoint 可按优先级排列,containerd 会依次尝试,直到成功。
最佳实践:docker.io 的配置中,我们添加了 https://registry-1.docker.io 作为 fallback endpoint。这样即使专属域名配置有误或不可用,containerd 仍可回退到官方源,确保服务不会中断。
注意:以上配置已包含常用镜像仓库,如果您的项目使用其他镜像仓库,请参考上述格式自行添加配置。
扩展配置示例:
4TLS 注意事项(v1.x)
如果因偶发情况触发证书验证失败。可使用以下配置忽略 TLS 校验:
[plugins."io.containerd.grpc.v1.cri".registry.configs."xxx.xuanyuan.run".tls] insecure_skip_verify = true
可针对不同域名分别设置。
5应用配置(v1.x)
配置修改完成后,需重启 containerd:
sudo systemctl restart containerd
建议重启后使用 journalctl -u containerd -f 观察是否有报错信息。
6验证配置是否生效(v1.x)
方法一:拉取镜像并观察网络行为
sudo crictl pull docker.io/library/nginx:alpine
或使用 nerdctl:
sudo nerdctl pull nginx:alpine
若配置生效,镜像将从你设置的专属域名拉取,而非默认 registry-1.docker.io。
7常见问题
- config.toml 配置无效或路径错误
- config.toml 配置中没有配置对应的仓库
- 专属域名没有流量
- 确认文件路径和语法,或重建配置文件
- journalctl -u containerd -f 观察报错信息,看看具体是哪个仓库链接不上,配置到 config.toml 中
- 前往充值页面充值流量包
- hosts.toml 文件路径错误或不存在
- hosts.toml 配置语法错误
- 未为对应的镜像仓库创建 hosts.toml 文件
- 使用了错误的配置方式(v2.x 不能使用 v1.x 的 config.toml 配置)
- 确认 hosts.toml 文件路径正确
- 检查 hosts.toml 文件语法是否正确
- 为每个需要访问的镜像仓库创建对应的目录和 hosts.toml 文件
- 确认使用的是 v2.x 配置方式,参考上方的 v2.x 配置指南
- 使用了 v1.x 的 config.toml 配置方式(v2.x 不支持)
- hosts.toml 文件路径或格式错误
- 确认 containerd 版本,v2.x 必须使用 hosts.toml 配置
- 参考上方的 v2.x 配置指南重新配置
轩辕镜像配置手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
登录仓库拉取
通过 Docker 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像服务
Windows/Mac
在 Docker Desktop 配置镜像
Docker Compose
Docker Compose 项目配置
K8s Containerd
Kubernetes 集群配置 Containerd
K3s
K3s 轻量级 Kubernetes 镜像加速
宝塔面板
在宝塔面板一键配置镜像
群晖
Synology 群晖 NAS 配置
飞牛
飞牛 fnOS 系统配置镜像
极空间
极空间 NAS 系统配置服务
爱快路由
爱快 iKuai 路由系统配置
绿联
绿联 NAS 系统配置镜像
威联通
QNAP 威联通 NAS 配置
Podman
Podman 容器引擎配置
Singularity/Apptainer
HPC 科学计算容器配置
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
镜像拉取常见问题
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务