☰
public-image-mirror 镜像加速实操指南:ArgoCD 与 K8s 接入
2026/9/29 20:10:38 网站建设 项目流程

public-image-mirror 镜像加速实操指南:ArgoCD 与 K8s 接入

【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror

public-image-mirror 是 DaoCloud 的公开容器镜像加速方案,将 gcr.io、docker.io 等海外仓库通过前缀映射到 m.daocloud.io,解决国内拉取 gcr 慢、拉取超时、CI 被镜像阻塞的问题。适合 K8s 集群、ArgoCD 声明式部署、CI 构建与单机容器,改一个镜像前缀即可接入,无需改构建代码。

🐌 拉取卡住的三个现场

  • 拉gcr.io/...时,docker pull长时间卡在下载 manifest,最后超时。
  • CI 流水线的拉取步骤反复失败,整条构建被镜像拉取拖住。
  • 集群里多个 Pod 同时ErrImagePull/ImagePullBackOff,节点日志全是拉取超时。

这三个现场的共同点:镜像源在境外,直连链路慢且不稳。你的集群不用换网络,只需要一个离你更近的镜像节点。

方案速览:前缀映射与覆盖范围

public-image-mirror 是源仓库(Registry)的镜像节点,按名称前缀映射:m.daocloud.io/<原地址>指向同一个镜像,sha256 与源保持一致,采用懒加载——首次访问回源同步,后续命中缓存。新增镜像靠 allows.txt 白名单放行,无需改代码,每天自动检查同步情况。

维度说明
覆盖仓库gcr.io、docker.io、registry.k8s.io、quay.io、mcr.microsoft.com 等,以 allows.txt 白名单为准
使用方式镜像地址前加m.daocloud.io/前缀
适用对象K8s 集群、ArgoCD 等声明式部署、CI 构建、单机容器
生效机制懒加载回源 + 30 天缓存 + manifest 1 小时内存缓存

✅ 最小可行路径:一条前缀接入

最简前缀配置

在镜像地址前加m.daocloud.io/,直接拉取,一段话就能跑通:

docker pull m.daocloud.io/docker.io/library/nginx docker pull m.daocloud.io/gcr.io/google-containers/pause:3.9

推荐做法:改清单 image 字段

ArgoCD(GitOps 持续交付工具)的 Application 或 Deployment 里,只改image一行,其余不动。你的集群从这一刻起走加速节点:

containers: - name: app # 原: gcr.io/google-samples/hello-app:1.0 image: m.daocloud.io/gcr.io/google-samples/hello-app:1.0

备选:前缀替换常用仓库

部分源站支持把域名直接替换成加速域名,写法更短,适合统一基线。每个源站的前缀内容不同,别把 docker.io 之外的站点配给 docker 的registry-mirrors。

源站加速前缀
gcr.iogcr.m.daocloud.io
docker.iodocker.m.daocloud.io
registry.k8s.iok8s.m.daocloud.io
quay.ioquay.m.daocloud.io

🔧 验证与排错对照

先用docker pull或kubectl get pod -w确认能拉到,再批量推广。常见现象对照:

现象可能原因处理
拉取报 404镜像不在 allows.txt 白名单内,未同步确认镜像在白名单;不在则走内网缓存或申请同步
首次慢、后续快懒加载,首次需回源同步批量拉取安排在闲时(北京时间 01–07 点)
latest 拉到旧内容manifest 缓存 1 小时,tag 更新有延迟优先用@sha256或明确版本号,少用 latest
长时间超时高峰拥挤或网络不稳换闲时重试;持续慢改用内网缓存代理

🏢 进阶:内网缓存四步部署

内网环境可再垫一层本地 Registry,缓存常用镜像、减少对公网的依赖。完整配置见 docs/local-cache,步骤压缩为四步:

  1. 准备环境:确认已装 Docker 与 Docker Compose。
  2. 写 Compose 文件:Registry 以m.daocloud.io/.../registry:3启动,proxy.remoteurl指回https://m.daocloud.io。
  3. 启动并配置客户端:docker compose up -d,把内网地址加入/etc/docker/daemon.json的insecure-registries,重启 Docker。
  4. 验证:用<内网地址>:8888/<原镜像>拉取,命中缓存明显更快。
services: registry: image: m.daocloud.io/docker.io/library/registry:3 ports: ["8888:8888"] volumes: [cache-data:/var/lib/registry] command: ["/etc/docker/registry/config.yml"] configs: [{source: registry-config, target: /etc/docker/registry/config.yml}] # registry-config 省略:storage 指向 /var/lib/registry, # proxy.remoteurl 指 https://m.daocloud.io,ttl 2160h volumes: {cache-data: {}}
{ "insecure-registries": ["<内网地址>:8888"] }

下一步

  • 官方说明与白名单/限流公开信息:README.md
  • 内网缓存完整配置:docs/local-cache
  • 镜像是否受支持:查 allows.txt 白名单
  • 申请新增或同步镜像:走 issue 模板 .github/ISSUE_TEMPLATE
  • 同步队列与服务状态入口:见 README 顶部列出的监控链接(随仓库版本更新)

【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询