FEATURED · 精选文章

镜像拉取超时怎么办?public-image-mirror 三步跑通容器镜像加速

发布时间 / 2026/9/11 10:01:27
来源 / 创域科博编辑部
栏目 / 资讯中心
镜像拉取超时怎么办?public-image-mirror 三步跑通容器镜像加速 镜像拉取超时怎么办public-image-mirror 三步跑通容器镜像加速【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror凌晨部署服务docker pull卡在某个层上几十分钟不动Kubernetes 节点反复刷ImagePullBackOff——这种痛苦只要你拉过 gcr.io、ghcr.io 这类海外仓库就都懂。public-image-mirror 就是干这个的把海外公共镜像缓存到国内节点你只需在镜像名前加一个m.daocloud.io前缀拉取就从看缘分变成看网速。使用前后差多少不列虚的指标直接看体感差异以国内服务器实际拉取体验为例维度直连海外仓库走 public-image-mirror拉取耗时动辄十几分钟起步超时是常态明显缩短多数场景秒级到分钟级稳定性网络抖动就 ImagePullBackOff本地缓存 懒加载命中即拉改造成本—改一行镜像名或改一段客户端配置适用仓库docker.io / gcr.io / ghcr.io / quay.io 等全部支持且每天检查同步注意它只是源仓库的 Mirrorsha256 与源保持一致懒加载机制意味着有人拉过才同步缓存保留 30 天。准备工作已安装 Docker或 Podman能正常docker run一个任意镜像服务器可访问m.daocloud.io国内网络基本无障碍目标镜像在 allows.txt 白名单内——这是唯一硬性前提无需安装任何额外组件也不需要账号最短跑通路径下面三个小步骤走完全流程跟着做就行。先拉一个镜像验证链路。把官方 nginx 前面加上前缀再拉docker run -d -P m.daocloud.io/docker.io/library/nginx看到docker ps里该容器状态为Up就说明加速链路通了后续所有镜像都可以照这个格式用。再换你真正要用的镜像。比如 dify-plugin-daemon确认allows.txt里有docker.io/langgenius/*这条规则后直接把原来的地址加前缀docker pull m.daocloud.io/docker.io/langgenius/dify-plugin-daemon:latest拉取过程正常滚动输出、最终打印Status: Downloaded即通过。最后验证生产环境地址。在 CI/部署脚本里把镜像字段全局替换成m.daocloud.io/前缀格式跑一次构建。构建日志里镜像拉取阶段不再超时就算全链路跑通。跑通之后你可以按需深入下面三个最常用的能力。三个最值钱的用法用法一前缀映射通用方案。规则只有一条源仓库/namespace/image前面拼上m.daocloud.io/。它覆盖所有支持的前缀包括docker.io、gcr.io、ghcr.io、quay.io、mcr.microsoft.com、nvcr.io等。例如拉 gcr.io 的镜像docker pull m.daocloud.io/gcr.io/google/kubebuilder/kube-controller-builder:v3.11.1用法二Docker 客户端级透明加速。如果你不想逐个改镜像名可以把 README.md 里的加速 Docker一节抄进/etc/docker/daemon.json加一行registry-mirrors指向https://docker.m.daocloud.io然后systemctl restart docker。之后所有docker.io的拉取自动走加速源配置文件一个字不用改。Podman 用户则在registries.conf里配置 mirror而且 Podman 还能给 gcr.io、ghcr.io 等非 docker.io 源配 mirrorREADME 里有完整示例。用法三Kubernetes 场景。kubeadm 装集群时把imageRepository指到k8s.m.daocloud.io即可apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration imageRepository: k8s.m.daocloud.iokind 用户一行搞定kind create cluster --image m.daocloud.io/docker.io/kindest/node:v1.22.1。如果你懒得逐个改 YAML也可以参考 README 提到的 Webhook 方案自动改写所有 Pod 的镜像字段。再往内网走一步的话docs/local-cache/ 提供了一份 docker-compose 配置可以自托管一个本地缓存代理让内网机器完全脱离外网拉镜像。避坑指南坑 1拉取直接 404 或报 manifest unknown。原因该镜像路径不在 allows.txt 白名单内或缓存 30 天过期后被清理。 修复查一下白名单有没有对应路径没有就提 Issue 申请过期的镜像重新拉一次即可触发重新同步。坑 2latest 标签的镜像不更新内容还是旧的。原因Manifest 内存缓存 1 小时上游 tag 变更后最多 1 小时才会同步新数据。 修复优先用sha256:摘要固定镜像其次用明确版本号最后才考虑latest这类可变 tag。坑 3高峰期拉取排队、超时。原因白天是公共服务的拥挤时段。 修复把批量拉取任务CI、预热镜像排到北京时间 01-07 点的闲时窗口。坑 4把非 docker.io 的镜像也配进 Docker 的 registry-mirrors结果报错。原因docker.m.daocloud.io这类前缀替换是按源站单独配置的不要把 gcr.io 的地址交给 docker 的 mirror 机制。 修复非 docker.io 的源一律用m.daocloud.io/完整前缀方式或按 README 的对照表用对应的前缀替换域。坑 5偶尔某个 blob 报 404重试就好。原因Blob 内存缓存 1 分钟期间若该层正好到达 30 天期限被删除就会短暂 404。 修复直接重拉属于机制内的正常现象。写在最后整个方案的核心就一句话镜像名加前缀客户端配置一行K8s 改一个 repository。白名单、限流、同步状态这些运营信息都维护在仓库里有疑问可以直接翻 allows.txt 和 README.md。仓库 clone 下来随时可用git clone https://gitcode.com/GitHub_Trending/pu/public-image-mirror现在就把你部署脚本里的镜像地址换成m.daocloud.io/前缀今晚的部署就别再干等拉镜像了。【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻