告别 2 小时等待:public-image-mirror 一步搞定国内 Docker 镜像加速

告别 2 小时等待:public-image-mirror 一步搞定国内 Docker 镜像加速 告别 2 小时等待public-image-mirror 一步搞定国内 Docker 镜像加速【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror凌晨十一点CI 流水线卡在镜像拉取阶段docker pull盯着 1KB/s 的进度条一动不动。镜像都放在国外仓库国内镜像拉取就是这么磨人。public-image-mirrorDaoCloud 的国内镜像加速代理服务直接把问题绕开在原地址上加一个前缀镜像高速拉下来sha256 哈希和源站完全一致。⚡️ 一句话定位用上之后你的体感变化public-image-mirror 是个国内镜像加速代理——国外源站的稳定镜像而不是把整个仓库复制一份放国内。用上的体感变化原来拉 2 小时的镜像现在 2 分钟内搞定不再动不动断连超时K8s 集群能整体覆盖内容与源站 sha256 一致不用担心内容被改动加镜像不用改任何代码加个前缀就行 30 秒跑通改个前缀就完事不用装东西、不用做配置在原地址前加m.daocloud.io/前缀docker.io/library/busybox ↓ m.daocloud.io/docker.io/library/busybox源站在支持列表里的也可以直接替换前缀源站替换为备注docker.iodocker.m.daocloud.iogcr.iogcr.m.daocloud.iogcr 国内加速走这个ghcr.ioghcr.m.daocloud.iok8s.gcr.iok8s-gcr.m.daocloud.io已迁移到 registry.k8s.ioregistry.k8s.iok8s.m.daocloud.ioK8s 组件镜像mcr.microsoft.commcr.m.daocloud.ioquay.ioquay.m.daocloud.io现在就能试一把docker run -d -P m.daocloud.io/docker.io/library/nginx几秒后页面出来就成了。 场景一daemon.json 加一行搞定 Docker 全局加速什么情况下用单机上用 Docker 手动拉镜像不想每次都记得加前缀。怎么配往/etc/docker/daemon.json加 registry-mirrors 配置{ registry-mirrors: [ https://docker.m.daocloud.io ] }注意这一行只对 docker.io 生效别把 gcr.io 之类的塞进来后面坑里细说。然后重启sudo systemctl restart docker配完怎么验证正常拉任意一个 docker.io 镜像比如docker pull docker.io/library/nginx会自动转发到加速源下载速度明显起飞就说明配置生效了。 场景二Kubernetes 集群镜像加速什么情况下用搭集群kubeadm / kind或者存量 Pod 拉镜像总是超时。kubeadm 建集群配置文件里把镜像仓库指到 K8s 组件镜像加速站apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration dns: imageRepository: k8s.m.daocloud.io/coredns # coredns 走 K8s 加速站 imageRepository: k8s.m.daocloud.io # 集群组件都从这里拉kind 本地集群一条命令的事kind create cluster --name kind --image m.daocloud.io/docker.io/kindest/node:v1.22.1存量集群的 Pod不想改 yaml 的话用 Webhookrepimage自动改写新建 Pod 的镜像地址一条 kubectl 命令装好containerd 环境也可以照官方 hosts 配置给各 registry 配 mirror。细节见 README.md 里的 Accelerate Kubernetes 部分。️ 场景三内网本地缓存进阶选读什么情况下用内网或对外网依赖大的环境想把常用镜像缓存到本地反复复用。怎么配用 docker-compose 起一个 registry proxy让它代理到 m.daocloud.ioservices: registry: image: m.daocloud.io/docker.io/library/registry:3 # registry 镜像本身也走加速源 ports: - 8888:8888 volumes: - cache-data:/var/lib/registry # ... command/configs 挂载细节见完整文件 configs: registry-config: content: | version: 0.1 proxy: remoteurl: https://m.daocloud.io # 关键代理到加速源 ttl: 2160h # 本地缓存保留 90 天 volumes: cache-data: {}docker compose up -d启动后把本地地址加进客户端 daemon.json 的insecure-registries并重启 Docker。之后拉镜像把m.daocloud.io前缀换成你的本地地址即可例如10.0.0.5:8888/docker.io/library/nginx:latest。完整 compose 文件和客户端配置见 docs/local-cache/README.md。配完怎么验证第一次拉某个镜像会慢一点它在回填缓存第二次起直接从本地磁盘走速度立竿见影。⚠️ 避坑与调优我踩过的提醒你一句如果你把 gcr.io、ghcr.io 塞进 registry-mirrors → 别费劲了。Docker 的 registry-mirrors 只对 docker.io 生效其他源站内容各不相同得用各自的替换站这也是官方反复强调的。如果某天第一次拉突然变慢 → 别慌是缓存过期。缓存内容只保留 30 天过期后会重新从源同步另外 Manifest 有 1 小时内存缓存上游 tag 变了要等 1 小时才会同步过来。如果白天拉取拥挤 → 挪到闲时。官方建议把拉取任务放在凌晨北京时间 01-07 点其他时段非常拥挤。如果担心内容漂移 → 钉死版本号。优先用sha256:指定镜像其次用明确版本号的 tag慎用 latest 这种可变 tag——它变更后先响应旧数据后台再重新同步。如果想确认服务状态 → 官方入口现成的。README.md 里给了同步队列和服务状态监控的入口同步队列只保留一小时的同步记录排查某镜像怎么一直 404先去那儿看一眼。下次拉镜像别再盯着进度条了。想查支持源站完整列表克隆下来翻一遍git clone https://gitcode.com/GitHub_Trending/pu/public-image-mirror然后把加前缀写进你们团队的镜像使用约定里。【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考