
Docker 镜像加速实战指南public-image-mirror 从单机到内网【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror凌晨等着一个 2GB 的镜像拉取进度条卡在 99%这对国内开发者并不陌生。public-image-mirror 是一个国内的容器镜像代理服务把 gcr.io、ghcr.io 这些海外仓库搬到国内链路加个前缀就能快速完成镜像拉取。不同环境下的接法不一样按场景来看。镜像代理是怎么起作用的它不是把全部镜像提前搬回来而是懒加载代理真正拉取某张镜像时才从源仓库拉取并转发、缓存。所有镜像的 sha256 与源仓库完全一致同步状态每天检查一次。也就是说拉到的不是加工过的副本而是原件本身只是走了一条更快的路。按场景选方案单机 Dockerregistry-mirrors 一行配置什么时候用只想加速 docker.io 的日常拉取又不想改动任何命令写法的时候。编辑/etc/docker/daemon.json加入{ registry-mirrors: [ https://docker.m.daocloud.io ] }改完重启 Docker 服务即可之后docker pull nginx这类命令无需任何修改。如果只想临时加速某张镜像也可以不动配置直接在地址前加前缀docker.io/library/nginx写成m.daocloud.io/docker.io/library/nginx。gcr.io、ghcr.io 这类站点没有 registry-mirrors 入口只能走前缀常见映射如下海外源站加速地址前缀替换说明gcr.iogcr.m.daocloud.ioGoogle 容器仓库ghcr.ioghcr.m.daocloud.ioGitHub 容器仓库registry.k8s.iok8s.m.daocloud.ioK8s 官方组件镜像mcr.microsoft.commcr.m.daocloud.io微软容器仓库quay.ioquay.m.daocloud.ioRed Hat 镜像仓库docker.iodocker.m.daocloud.io唯一可写入 registry-mirrors 的站注意registry-mirrors 只对 docker.io 生效把其他源站塞进去是无效配置别踩这个坑。K8s 集群imageRepository 批量替换镜像地址什么时候用要装新集群或者想让整个环境默认走加速链路。用 kubeadm 装集群时在配置里把组件镜像仓库指到加速地址apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration dns: imageRepository: k8s.m.daocloud.io/coredns imageRepository: k8s.m.daocloud.io跑 kind 本地集群同理给节点镜像加上前缀即可kind create cluster --name kind --image m.daocloud.io/docker.io/kindest/node:v1.22.1对已存在的存量 Pod逐个改 yaml 很费劲README 里提到的思路是部署 repimage 这类 Webhook 工具让新建 Pod 的 image 地址自动被改写。需要注意的是k8s.gcr.io 已迁移到 registry.k8s.io写配置时用k8s.m.daocloud.io这个新地址别抄到过期文档里的旧域名。内网环境docker-compose 部署私有镜像缓存什么时候用生产网完全出不了外网或大量内网节点反复拉同一批镜像、把公共服务挤到限流。在能访问外网的一台机器上起一个带缓存的 registryservices: registry: image: m.daocloud.io/docker.io/library/registry:3 restart: unless-stopped ports: - 8888:8888 command: - /etc/docker/registry/config.yml volumes: - cache-data:/var/lib/registry configs: - source: registry-config target: /etc/docker/registry/config.yml configs: registry-config: content: | version: 0.1 storage: delete: enabled: true filesystem: rootdirectory: /var/lib/registry http: addr: :8888 proxy: remoteurl: https://m.daocloud.io ttl: 2160h volumes: cache-data: {}docker compose up -d启动后内网客户端在 daemon.json 里把该地址加入insecure-registries并重启 Docker之后拉镜像时把前缀换成这个 registry 的地址它就充当了 m.daocloud.io 的本地缓存。完整部署细节见仓库内的内网缓存文档。拉取前的踩坑提醒白天时段服务非常拥挤可调度任务尽量放到北京时间 01-07 点的闲时窗口指定镜像的顺序sha256:优先其次明确版本号的 tag最后才是 latest——可变 tag 变更后会重新同步期间拉到的可能与预期不一致镜像侧缓存默认只保留 30 天长期不碰的镜像下次拉取要重新走源同步加速镜像的 hash 与源仓库一致做镜像校验时以源仓库的 sha256 为准别拿加速站的 tag 当版本依据按环境挑一个方案套上就不用再盯进度条了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),仅供参考