news 2026/9/11 12:38:51

5 分钟给 Milvus 装上国内镜像加速:DaoCloud 方案实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5 分钟给 Milvus 装上国内镜像加速:DaoCloud 方案实战

5 分钟给 Milvus 装上国内镜像加速:DaoCloud 方案实战

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

凌晨拉起一套 Milvus,docker pull的进度条爬了二十分钟,最后死在ErrImagePull上。这几乎是每个国内运维都熟悉的剧本:Milvus 这类公共容器镜像托管在海外 registry,网络条件摆在那儿,急也没用。

public-image-mirror 是 DaoCloud 的公开镜像加速项目:它把海外源站(docker.io、gcr.io、ghcr.io 等)的镜像搬到国内节点就近分发,你要做的只有一件事——给镜像地址加一个前缀,然后正常拉取。

30 秒搞懂 DaoCloud 镜像加速原理

这个服务本质是源 Registry 的 mirror,而不是另一个独立仓库,理解这几点就不会用错:

  • 所有 sha256 哈希与源完全一致,采用懒加载机制——你真拉到的层才会被缓存
  • 缓存只保留 30 天,过期内容下次拉取要重新同步
  • Manifest 有 1 小时内存缓存,tag 变更后一小时才反映新数据
  • 新增镜像不用改代码,白名单加一行即可

所以用法极简:在原地址前加m.daocloud.io,比如 Milvus 主镜像变成m.daocloud.io/docker.io/milvusdb/milvus:v2.3.4

另外还有一套"前缀替换"模式(docker.m.daocloud.io这类写法),但官方明确推荐加前缀的方式,替换表只覆盖十来个知名源站,且需要人工提需求配置,新手优先别碰。

Milvus 镜像加速配置实战:三步走

第一步,先把地址规范化

手写镜像地址容易漏东西:milvusdb/milvus其实是docker.io/milvusdb/milvus:latest的简写。仓库自带规范化脚本,一次补齐域名和默认 tag:

./hack/correct-image.sh milvusdb/milvus # 输出: docker.io/milvusdb/milvus:latest

hack/correct-image.sh 里还顺带处理了hub.docker.comregistry.hub.docker.com这类历史写法,统统归一。

第二步,确认镜像在白名单内

加速范围由白名单控制:allows.txt 里按源站/命名空间配规则,docker.io/milvusdb/*已经覆盖 Milvus 社区版全家桶。自己的镜像在不在范围内,用校验脚本一秒出结果:

bash hack/verify-allows.sh allows.txt docker.io/milvusdb/milvus # 无输出且退出码 0 = 命中白名单

注意脚本只吃不带 tag 的镜像名。没命中说明该镜像暂未纳入加速范围,需要向维护者提需求。

第三步,改一行配置就能跑

本机先验证一把:

docker pull m.daocloud.io/docker.io/milvusdb/milvus:v2.3.4

K8s 里同理,把 image 字段换成加速地址即可:

image: m.daocloud.io/docker.io/milvusdb/milvus:v2.3.4 imagePullPolicy: IfNotPresent

到这里,三步走完全程:规范化地址、查白名单、改 yaml。没有中间件,没有额外 agent。

镜像加速踩坑速查:四个真实高频坑

  1. latest 别随手写进生产。它是可变 tag,变更后缓存可能先返回旧数据,后台还要重新同步;优先级建议:@sha256:摘要 > 明确版本号 > latest
  2. 30 天过期是隐形雷。层被清理后短窗口内拉取可能 404,遇到偶发失败先重拉一次再怀疑服务
  3. 别把非 docker.io 源站塞进全局 registry-mirrors。前缀替换表里每个源站内容不同,配置混了必出问题
  4. 高峰期排队。官方建议把拉取任务挪到凌晨闲时(北京时间 01-07 点),同步队列记录也只保留一小时,事后想查都没痕迹

进阶:内网镜像缓存与全局接管

单台机器加速不够、或者整个内网出不去公网时,翻一下 内网缓存部署文档:在内网起一个 registry,把 proxy 指向m.daocloud.io,之后全公司从本地仓库拉取,用法照旧——换个前缀的事:

docker pull <your-registry-ip>:8888/docker.io/library/nginx:latest

再往下就是全局接管思路:不想手改任何 yaml,可以用 Webhook 方案自动改写新建 Pod 的 image 字段;Podman、containerd 也能按源站前缀表各自配置。入口不同,原理还是那句加前缀。

一句话总结:拉取慢的时候,先查地址在不在白名单,再加前缀。两步都通了还没解决,那才是真该抓自己网络的事。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 12:38:33

从零搭建个人Agent应用:WorkBuddy开放平台实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 12:38:06

从原理到实战:格式化字符串漏洞利用与GOT表覆写全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 12:37:23

camofox-browser:基于Firefox的浏览器指纹伪装与反追踪实战

作为一个常年折腾浏览器、把隐私保护当成日常习惯的技术爱好者&#xff0c;我最近在自己的主力机上深度体验了一个叫camofox-browser的项目。这名字起得挺直白&#xff1a;camo 是迷彩&#xff0c;fox 是火狐&#xff0c;合起来就是用火狐的底子做一套"迷彩伪装"&…

作者头像 李华
网站建设 2026/9/11 12:30:21

Alexa设备接入全链路解析:从ACK机制到StateReport实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华