gcr 镜像拉不动?前缀换成 m.daocloud.io 就通了
【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror
把镜像地址前缀gcr.io换成gcr.m.daocloud.io,image 字段只改一行。适用 gcr.io、ghcr.io、quay.io、registry.k8s.io 等白名单源站的公共镜像。只同步公共镜像,私有仓库不生效。
🔄 镜像地址替换对照表
- 在部署文件(YAML、Helm、docker compose 或 kubeadm 配置)里定位
image或imageRepository字段。 - 推荐做法:给原完整地址前面直接加
m.daocloud.io/,如docker.io/library/nginx→m.daocloud.io/docker.io/library/nginx,对所有源站通用。 - 或按下表替换源站前缀,如
registry.k8s.io/coredns→k8s.m.daocloud.io/coredns。 - 版本 tag 与
@sha256:digest 一个字符都不用动;跑一遍docker pull m.daocloud.io/docker.io/library/nginx验证拉通。
| 源站 | 替换为 |
|---|---|
gcr.io | gcr.m.daocloud.io |
ghcr.io | ghcr.m.daocloud.io |
quay.io | quay.m.daocloud.io |
registry.k8s.io | k8s.m.daocloud.io |
docker.io | docker.m.daocloud.io |
kubeadm 场景就改ClusterConfiguration里这一行:
imageRepository: k8s.m.daocloud.io同步机制一览
说白了,它是懒加载的公共镜像同步站:你发起 pull 它才回源抓取,sha256 与上游仓库保持一致,版本不会漂移。Manifest 内存缓存 1 小时,上游更新 tag 后约 1 小时才同步到新值;Blob 内存缓存 1 分钟。缓存内容只保留 30 天,过期后首次拉取触发重新同步。服务端有白名单加限流兜底,批量拉取建议压在北京时间凌晨 01–07 点的闲时窗口。
⚠️ 边界与落地核对
- 只同步白名单源站的公共镜像,私有仓库不生效。
- Docker 的
registry-mirrors只对 docker.io 生效,其他源站别往里塞;Podman 的registries.conf才能按源站逐个配。 - 生产环境钉死明确版本号或
@sha256:digest,别用 latest 这类可变 tag。 - k8s.gcr.io 已迁移到 registry.k8s.io,地址直接用
k8s.m.daocloud.io。 - 这是公共同步站不是官方仓库,落地前核对 tag 对应 digest 与上游是否一致。
症状速查表
| 现象 | 原因 | 处置 |
|---|---|---|
| 拉取报 404 找不到 tag | 缓存满 30 天被清理 | 确认上游有此 tag 再重拉 |
| 拉取超时或极慢 | 高峰期链路拥挤 | 改到凌晨 01–07 点再拉 |
| 版本与上游对不上 | latest 更新滞后约 1 小时 | 钉死明确版本号 |
内网离线怎么落地
前缀改一行就能把海外镜像拉通;生产环境钉死版本、闲时拉取,内网再加一层本地缓存代理。本地缓存用 Docker Compose 起registry:3,proxy.remoteurl指向m.daocloud.io,ttl2160h(30 天),服务监听 8888 端口,详见 docs/local-cache/README.md。
【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考