尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
DaoCloud public-image-mirror 镜像加速指南:3 种用法从单条命令到全局生效
DaoCloud public-image-mirror 镜像加速指南3 种用法从单条命令到全局生效【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror晚上十点你执行docker pull gcr.io/google-containers/pause:3.9终端停在 Waiting... 半天没动静。不少镜像仓库都部署在国外国内直接拉取又慢又不稳定。DaoCloud 开源的 public-image-mirror 就是干这个的在原始镜像地址前加一个m.daocloud.io/前缀拉取就会先经过国内缓存节点完成镜像同步这一层就叫做镜像加速。项目定位它到底做了什么这个仓库本身不提供后端服务它做两件事第一维护一份白名单 allows.txt决定哪些源站的镜像允许同步新镜像想被加速就往这份名单里加第二公布一套前缀映射规则告诉你在每个源站对应的域名前面该贴什么前缀。和直接拉官方镜像的区别在于懒加载。打个比方它不是提前把仓库里所有镜像搬到国内而是像按需代购——你第一次拉某个镜像时后台才去海外源仓库把数据取回来缓存住之后再拉就是本地直接交付不用再等跨网传输。⚠️ 注意缓存只保留 30 天过期后要重新同步而且 manifest 在内存里有 1 小时的缓存源站 tag 更新后最多一小时才会生效。public-image-mirror 镜像加速流程图上手一加前缀单条命令解决适用场景临时拉一两个镜像不想动任何全局配置。关键命令在完整镜像地址含 registry 域名前面加m.daocloud.io/原地址里的域名不用删# 前缀加在完整地址前其余什么都不用改 docker pull m.daocloud.io/gcr.io/google-containers/pause:3.9效果验证拉取完成后执行docker images能看到本地已存在该镜像想确认能正常启动docker run --rm跑一下即可。 官方 README 里给的最快示例就是docker run -d -P m.daocloud.io/docker.io/library/nginx一条命令拉起来就能看到页面。上手二换域名写法更短适用场景镜像来自少数几个常用源站docker.io、gcr.io、ghcr.io 等希望命令干净一点。关键命令这些源站有专门的替换域名规则见 README 的支持前缀替换的 Registry表格。以 docker.io 为例# docker.io 的镜像可以换成更短的 docker.m.daocloud.io docker pull docker.m.daocloud.io/library/nginx:alpine # 跑起来验证-P 会随机映射端口 docker run -d -P --name nginx-test docker.m.daocloud.io/library/nginx:alpinegcr.io 对应gcr.m.daocloud.ioregistry.k8s.io 对应k8s.m.daocloud.io其余源站在表格里对号入座。效果验证docker ps里容器状态是Up再用curl访问映射出的端口能返回页面说明镜像本身完整可用。上手三改一行配置全局生效适用场景团队机器上不想每次手敲前缀让 Docker 守护进程自己走镜像源。关键配置把下面内容写进/etc/docker/daemon.json重启 Docker 生效{ registry-mirrors: [ https://docker.m.daocloud.io ] }效果验证重启后执行docker info | grep -A2 Registry Mirrors输出里出现https://docker.m.daocloud.io即配置成功。⚠️ 这里有个容易踩的点docker 的 registry-mirrors 只建议配 docker.io 这一站README 明确提醒不要把 docker.io 之外的源站塞进这个配置原因见下面的避坑指南。Kubernetes 场景同理kubeadm 部署时把配置文件里的imageRepository改成k8s.m.daocloud.iokind 建集群时把--image换成m.daocloud.io/docker.io/kindest/node:v1.22.1都是把源仓库地址整体替换掉。最小演练本地核对白名单想确认某个镜像到底能不能被这个服务同步不用真的拉一次浪费时间。先把仓库克隆下来然后用它自带的校验脚本核对git clone https://gitcode.com/GitHub_Trending/pu/public-image-mirror cd public-image-mirror # 传入不带 tag 的镜像路径退出码 0 表示在白名单内 bash hack/verify-allows.sh allows.txt docker.io/library/nginx; echo $?跑完你会看到输出0说明docker.io/library/nginx在 allows.txt 中放心拉取如果输出1代表不在白名单加速服务不会同步它。这套脚本放在 hack/ 目录下hack/verify-allows.sh只负责白名单判断另有hack/correct-image.sh帮你把写歪的镜像名缺域名、缺 tag补全成标准格式提交 Issue 前可以顺手用一下。避坑指南报 not found但海外能直接拉现象docker pull m.daocloud.io/xxx/yyy报镜像不存在同一个镜像在海外源站却能正常拉取。原因这个项目是白名单 限流的公开服务只同步 allows.txt 里的镜像不在名单内的直接拒绝。处理本地跑bash hack/verify-allows.sh allows.txt 不带tag的镜像路径返回 1 就是没在名单里。去项目 Issue 区提交添加申请另外 README 建议把批量拉取任务放在闲时北京时间凌晨 01–07 点其他时段同步队列非常拥挤会明显变慢。同一个镜像时快时慢偶尔 404现象昨天还能拉今天报 404或者拉下来发现 tag 内容和源站对不上。原因懒加载缓存的固有特性——缓存内容只保留 30 天过期被清理后需要重新同步manifest 有 1 小时内存缓存tag 更新后要等缓存过期blob 有 1 分钟缓存期间如果底层数据到了 30 天期限被删就会短暂报 404。处理生产环境优先用sha256:摘要锁定镜像其次是明确版本号的 tag最后才考虑latest这种可变 tagREADME 原话latest 变更后会响应旧数据并且后台会重新同步。碰到偶发 404隔几分钟重新拉一次即可。配了 registry-mirrorsgcr 镜像却没走加速现象/etc/docker/daemon.json里配好了docker.m.daocloud.io但拉 gcr.io、ghcr.io 的镜像速度没变化。原因docker 的 registry-mirrors 只会对 docker.io 的请求做替换每个源站的内容和路由互不相同README 明确警告不要把 docker.io 之外的站点配置给 registry-mirrors。处理gcr.io、ghcr.io 这类源站用加前缀方式m.daocloud.io/gcr.io/...如果团队用的是 Podman它支持给每个 registry 单独配 mirror在/etc/containers/registries.conf里给 gcr.io、quay.io 分别加上对应的*.m.daocloud.io地址就能全覆盖。收尾public-image-mirror 用一份白名单 一套前缀规则把跨网拉镜像的问题收敛成一个加前缀的动作稳定、透明、无需改代码。想继续深入的话两个方向值得看一是按 docs/local-cache/README.md 在机房内网部署一层私有 registry 缓存减少对外网的依赖二是研究仓库配套的限流与同步策略README 顶部列出的公开信息 Issue理解官方如何平衡加速效果与源站压力。【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Authelia SQLite3 本地存储配置详解:storage.local 路径、加密密钥与高可用限制

Authelia SQLite3 本地存储配置详解:storage.local 路径、加密密钥与高可用限制

Authelia SQLite3 本地存储配置详解:storage.local 路径、加密密钥与高可用限制 【免费下载链接】authelia The Single Sign-On Multi-Factor portal for web apps. OpenID Certified™ and Post-Quantum Cryptography Ready. 项目地址: https://gitcode.com/GitH…

📅 2026/9/11 18:40:42
基于MediaPipe与CNN的手势控制鼠标:从关键点到事件映射

基于MediaPipe与CNN的手势控制鼠标:从关键点到事件映射

简介:基于OpenCV、MediaPipe与CNN的手势识别鼠标操控项目,是一份面向计算机视觉、人机交互方向毕设、课程设计与入门进阶的完整资源。项目以指尖移动控制鼠标、手势点击、滚动页面、虚拟键盘输入及快捷按键触发为核心功能,覆盖手部关键点检测…

📅 2026/9/11 18:40:42
单通道脑电睡眠分期:从EDF预处理到模型评估的Python实战

单通道脑电睡眠分期:从EDF预处理到模型评估的Python实战

简介:面向计算机、数学、电子信息类专业课程设计、期末大作业和毕业设计场景,这套基于单通道脑电信号的自动睡眠分期研究源码包提供了可直接运行的完整项目。项目使用Sleep-EDF公开数据集SC数据,含153条整晚睡眠记录,采用Fpz-Cz通…

📅 2026/9/11 18:40:42
MORE NEWS

更多资讯

📰

CMSIS-FreeRTOS源码审计:从适配层到内核调度的嵌入式RTOS实践

做嵌入式开发这些年,我越来越觉得有一类源码值得每个 MCU 工程师静下心来从头到尾读一遍:CMSIS-FreeRTOS。尤其是用 STM32CubeMX、Keil RTE 或 ARM 官方仓库生成过工程的朋友,你们每天打开的就是这个东西,但它内部到底怎么跑起来的…

📰

运放同相与反相怎么选?从输入阻抗、偏置到噪声增益讲透

前阵子画一块光电检测板的信号调理电路,原理图出来后,同事指着一个运放级问我:这一级为什么用反相放大?信号相位在这里需要翻转吗?我当时愣了一下,然后诚实地说:其实不是因为相位,是…

📰

Duix.Avatar报SQLite3 can only bind错误?三步定位并解决

Duix.Avatar报SQLite3 can only bind错误?三步定位并解决 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Tre…

📰

OSI七层模型|各层级传输数据单位(详解)

很多人学不懂网络层级,核心问题就是:每层的“数据单位名词太多、容易混淆”。本文对照标准 OSI 七层表格,逐词拆解、通俗解释,不堆砌专业术语,零基础也能看懂。一、OSI七层模型标准对照表先把你看到的原版表格规整排版…

📰

Vben Admin 国际化(i18n)完全指南:从语言配置到远程语言包与自定义语言扩展

Vben Admin 国际化(i18n)完全指南:从语言配置到远程语言包与自定义语言扩展 【免费下载链接】vue-vben-admin A modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. Its fast! 项目地址: https://gitcod…

📰

基于深度学习的人脸识别签到系统开发指南

简介:基于深度学习的人脸识别签到系统毕业设计源码包,主要面向计算机相关专业正在完成课程设计、毕业设计或需要项目实战练习的学生,可帮助解决人脸识别与自动签到相结合的系统实现问题。项目在导师指导下完成并获评审98分,源码经…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬