把 postgres:16-alpine 的拉取从超时压到两分钟:DaoCloud 镜像加速完整实操

发布时间:2026/9/11 23:13:52
把 postgres:16-alpine 的拉取从超时压到两分钟:DaoCloud 镜像加速完整实操 把 postgres:16-alpine 的拉取从超时压到两分钟DaoCloud 镜像加速完整实操【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror深夜CI 卡在拉镜像这一步一台没有代理的国内网络开发机直接从 Docker Hub 拉 postgres:16-alpine十分钟过去还是超时断开。团队换用了 DaoCloud public-image-mirror 的镜像加速方案——把镜像地址换个前缀或者在 Docker 守护进程配置里加一行拉取就不用来回重试了。下面是从查白名单到固化客户端配置的完整流程。DaoCloud 镜像加速方案全景前缀改写与按需缓存public-image-mirror 是 DaoCloud 维护的开源镜像代理服务核心由两部分组成一份 1300 余条的 allows.txt 白名单声明可同步的镜像范围一个统一的 m.daocloud.io 入口。首次拉取时它按需回源抓取并落到本地缓存所有 sha256 与源站保持一致拿到的就是官方原始镜像。维度直连 Docker Hub走镜像加速后拉取地址postgres:16-alpinem.daocloud.io/docker.io/library/postgres:16-alpine网络路径跨境连接境外仓库中途频繁断开国内节点代理30 天缓存过期才重新同步内容一致性取决于链路能否走通摘要与源站相同内容不漂移3条命令完成postgres镜像拉取加速整个过程分三步先确认镜像在白名单里再改写地址最后把客户端配置固化下来。查白名单确认postgres镜像是否在同步范围白名单条目支持通配符postgres 官方镜像在范围内直接确认即可grep -n library/postgres allows.txt # 输出: 550:docker.io/library/postgres把postgres镜像地址改写为m.daocloud.io加速前缀推荐方式是给完整地址加上 m.daocloud.io/docker.io/ 前缀只改拉取命令这一处docker pull m.daocloud.io/docker.io/library/postgres:16-alpine用registry-mirrors固化docker.io全局加速对 docker.io 的镜像可以把替换域名写进 /etc/docker/daemon.json重启守护进程后就不再逐条改地址{ registry-mirrors: [ https://docker.m.daocloud.io ] }注意前缀替换只对对应源站生效不要把 gcr.io 的地址指到 docker 的镜像域名上。白名单加懒加载镜像加速为什么稳镜像服务本质是一个懒加载反向代理不预先同步只在首次拉取时回源之后从本地缓存返回。白名单把同步范围限定在已知公开镜像内服务不会被当成任意的开放代理滥用。缓存有明确的生命周期——blob 保留 30 天manifest 内存缓存 1 小时——所以上游新推的同名 tag 要大约一小时后才生效过期缓存下次拉取会重新同步一次这也是首次慢、之后快体验的来源。kind、Podman、内网缓存三类拉取场景配置kind 本地集群kind create 用的节点镜像来自 docker.io只需换地址——kind create cluster --image m.daocloud.io/docker.io/kindest/node:v1.22.1几分钟就能起一个集群。Podman 多源接入registries.conf 支持按源站分别配 mirror比如 gcr.io 指向 gcr.m.daocloud.io、ghcr.io 指向 ghcr.m.daocloud.io各源站的拉取地址都不用手工改。内网缓存仓库离线或外网受控的内网用m.daocloud.io/docker.io/library/registry:3部署一个以 m.daocloud.io 为上游的本地缓存代理完整 compose 配置见 docs/local-cache/README.md。镜像加速避坑清单可变tag、高峰期与源站混淆❌ 用latest拉取 → ✅ 指定postgres:16-alpine这类明确版本 tag或用sha256:摘要可变 tag 在上游变动后会重新同步期间拿到的可能是旧缓存❌ 把 gcr.io 的地址指到 docker.io 的 registry-mirrors → ✅ 每个源站有独立前缀域名gcr 用gcr.m.daocloud.ioquay 用quay.m.daocloud.io白天大镜像经常拉断 → 把 CI 的镜像拉取排到北京时间 01:00-07:00 的闲时窗口白天同步队列拥挤拉取报 404 → 先 grep allows.txt 确认镜像在白名单内30 天缓存过期的重新同步期间可能偏慢稍等重试通常就能通过刚推送的新 tag 拉不到 → manifest 缓存有 1 小时延迟等下一轮同步或直接用摘要锁定版本这个项目给国内开发者提供了一个白名单约束、摘要与源站一致的拉取入口不篡改镜像内容也不用为每次拉取改写地址。完整白名单见 allows.txt同步机制与闲时建议见 README.md内网部署见 docs/local-cache/README.md。【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考