
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Docker镜像缓存代理,支持集中管理镜像仓库及其认证,可缓存来自任何仓库的镜像,包括Docker Hub、k8s.gcr.io、gcr.io等。
该镜像基于HTTPS_PROXY机制和注入CA根证书实现,是https://github.com/rpardini/docker-caching-proxy-multiple-private%E7%9A%84%E7%AE%80%E5%8C%96%E6%BC%94%E8%BF%9B%E7%89%88%E6%9C%AC%EF%BC%8C%E9%81%BF%E5%85%8D%E4%BA%86%60/etc/hosts%60 hack和--insecure-registry的使用。核心功能是缓存Docker镜像层(甚至来自S3、Google Storage等存储),同时支持集中管理镜像仓库的认证信息。只需配置一次Docker客户端(或Kubernetes节点),后续所有配置均可在代理端完成(需将代理的CA证书添加到系统信任根证书)。
运行代理
/docker_mirror_cache存储缓存(最大32GB)。/ca存储代理CA证书(跨重启保留)。REGISTRIES:需缓存的仓库列表(空格分隔,默认包含Docker Hub)。AUTH_REGISTRIES:仓库认证信息(格式hostname:username:password,空格分隔)。AUTH_REGISTRIES_DELIMITER:认证信息之间的分隔符(默认空格,若密码含空格可修改,如;;)。AUTH_REGISTRY_DELIMITER:认证信息内部的分隔符(默认冒号,若密码含冒号可修改,如:::)。Docker部署示例
普通场景:
bashdocker run --rm --name docker_registry_proxy -it \ -p 0.0.0.0:3128:3128 \ -v $(pwd)/docker_mirror_cache:/docker_mirror_cache \ -v $(pwd)/docker_mirror_certs:/ca \ -e REGISTRIES="k8s.gcr.io gcr.io quay.io your.own.registry another.public.registry" \ -e AUTH_REGISTRIES="auth.docker.io:dockerhub_username:dockerhub_password your.own.registry:username:password" \ rpardini/docker-registry-proxy:0.2.4
GCR场景(使用服务账号JSON密钥):
bashdocker run --rm --name docker_registry_proxy -it \ -p 0.0.0.0:3128:3128 \ -v $(pwd)/docker_mirror_cache:/docker_mirror_cache \ -v $(pwd)/docker_mirror_certs:/ca \ -e REGISTRIES="k8s.gcr.io gcr.io quay.io your.own.registry another.public.registry" \ -e AUTH_REGISTRIES_DELIMITER=";;;" \ -e AUTH_REGISTRY_DELIMITER=":::" \ -e AUTH_REGISTRIES="gcr.io:::_json_key:::$(cat servicekey.json);;;auth.docker.io:::dockerhub_username:::dockerhub_password" \ rpardini/docker-registry-proxy:0.2.4
配置Docker客户端/Kubernetes节点
在每个使用缓存的Docker主机上执行以下步骤(以Ubuntu Xenial为例):
bash# 添加Docker代理配置 mkdir -p /etc/systemd/system/docker.service.d cat << EOD > /etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://192.168.66.72:3128/" Environment="HTTPS_PROXY=http://192.168.66.72:3128/" EOD # 获取并信任代理CA证书 curl http://192.168.66.72:3128/ca.crt > /usr/share/ca-certificates/docker_registry_proxy.crt echo "docker_registry_proxy.crt" >> /etc/ca-certificates.conf update-ca-certificates --fresh # 重新加载systemd并重启Docker systemctl daemon-reload systemctl restart docker.service
测试
docker system prune -a -f(注意:此操作会删除所有未运行的容器、镜像等)。docker pull k8s.gcr.io/kube-proxy-amd64:v1.10.4),观察代理日志是否显示“MISS”。注意事项
为什么不使用Docker官方Registry的镜像缓存功能?
Docker官方Registry的镜像缓存仅支持Docker Hub,无法缓存k8s.gcr.io、gcr.io等其他仓库的镜像。而本代理支持任何仓库的缓存,解决了Kubernetes集群等场景下重复拉取镜像的带宽问题。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






来自真实用户的反馈,见证轩辕镜像的优质服务