终极Docker镜像加速解决方案:5分钟实现国内高速拉取 终极Docker镜像加速解决方案5分钟实现国内高速拉取【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror在国内开发环境中Docker镜像拉取速度慢是每个开发者都会遇到的痛点。特别是访问gcr.io、k8s.gcr.io、ghcr.io等国外镜像仓库时动辄几十分钟甚至数小时的等待时间严重影响了开发效率。public-image-mirror项目提供了一个简单而高效的容器镜像加速解决方案通过智能代理和缓存机制让您轻松实现Docker镜像的高速拉取彻底告别漫长的等待时间。为什么选择public-image-mirror核心优势与特性public-image-mirror不仅仅是一个简单的镜像代理它是一个完整的镜像加速生态系统具有以下核心特性 极速体验通过国内CDN节点加速镜像下载速度提升10倍以上 数据一致性所有镜像的sha256哈希值与源站完全一致确保安全性 实时同步每天自动检查并同步镜像保持与源站同步 智能缓存镜像内容缓存30天过期后自动重新同步 广泛支持覆盖几乎所有主流镜像仓库包括Docker Hub、GCR、GHCR等项目架构与原理项目的核心目录结构如下public-image-mirror/ ├── hack/ # 自动化脚本和工具 ├── docs/ # 文档和配置说明 ├── allows.txt # 支持加速的镜像仓库白名单 └── README.md # 项目说明文档项目的hack/目录包含了丰富的自动化脚本如verify-image.sh用于验证镜像同步状态merge-mirror.sh用于镜像合并操作等。allows.txt文件则列出了所有支持的镜像仓库目前已经支持超过1000个主流镜像源。快速开始3种加速方案方案一添加前缀法推荐这是最简单直接的加速方式只需在原始镜像地址前添加m.daocloud.io/前缀即可# 原始命令 docker pull docker.io/library/nginx:latest # 加速版本 docker pull m.daocloud.io/docker.io/library/nginx:latest # 运行容器 docker run -d -p 80:80 m.daocloud.io/docker.io/library/nginx方案二前缀替换法对于特定的镜像仓库可以直接替换前缀# Docker Hub加速 docker pull docker.m.daocloud.io/library/ubuntu:22.04 # Google Container Registry加速 docker pull gcr.m.daocloud.io/google-containers/pause:3.6 # GitHub Container Registry加速 docker pull ghcr.m.daocloud.io/linuxserver/heimdall:latest方案三全局配置加速对于需要频繁使用Docker的场景可以配置全局镜像加速器编辑Docker配置文件sudo vi /etc/docker/daemon.json添加镜像加速器配置{ registry-mirrors: [ https://docker.m.daocloud.io ], insecure-registries: [], debug: true, experimental: false }重启Docker服务sudo systemctl restart docker sudo systemctl status docker支持的主流镜像仓库public-image-mirror支持几乎所有主流的容器镜像仓库以下是部分常用仓库的加速地址映射源站仓库加速地址适用场景docker.iodocker.m.daocloud.ioDocker官方镜像gcr.iogcr.m.daocloud.ioGoogle容器镜像ghcr.ioghcr.m.daocloud.ioGitHub容器镜像k8s.gcr.iok8s-gcr.m.daocloud.ioKubernetes官方镜像registry.k8s.iok8s.m.daocloud.io新版Kubernetes镜像mcr.microsoft.commcr.m.daocloud.ioMicrosoft容器镜像quay.ioquay.m.daocloud.ioRed Hat容器镜像重要提示除docker.io外其他源站内容不同不要将非docker.io的站点配置给registry-mirrorsKubernetes环境加速配置kubeadm集群安装加速在kubeadm配置文件中指定镜像仓库apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration imageRepository: k8s.m.daocloud.io dns: imageRepository: k8s.m.daocloud.io/coredns etcd: local: imageRepository: k8s.m.daocloud.io networking: dnsDomain: cluster.localkind集群创建加速创建kind集群时直接使用加速镜像kind create cluster \ --name my-cluster \ --image m.daocloud.io/docker.io/kindest/node:v1.27.3 \ --config kind-config.yaml自动化Pod镜像替换使用repimage项目自动替换所有新建Pod的镜像地址# 部署repimage Webhook kubectl apply -f https://files.m.daocloud.io/github.com/wzshiming/repimage/releases/download/latest/repimage.yaml # 验证部署状态 kubectl rollout status deployment/repimage -n kube-system进阶使用内网缓存部署对于企业内网环境可以部署本地缓存服务器进一步提升拉取速度并减少外网依赖Docker Compose部署本地缓存创建docker-compose.yml文件version: 3.8 services: registry: image: m.daocloud.io/docker.io/library/registry:3 restart: unless-stopped ports: - 8888:8888 environment: REGISTRY_PROXY_REMOTEURL: https://m.daocloud.io REGISTRY_PROXY_USERNAME: REGISTRY_PROXY_PASSWORD: volumes: - registry-data:/var/lib/registry command: [/etc/docker/registry/config.yml] volumes: registry-data:启动本地缓存服务docker-compose up -d配置Docker客户端使用本地缓存{ insecure-registries: [192.168.1.100:8888], registry-mirrors: [http://192.168.1.100:8888] }Containerd运行时加速配置对于使用Containerd作为容器运行时的环境配置方式略有不同配置Containerd镜像加速编辑Containerd配置文件/etc/containerd/config.toml[plugins.io.containerd.grpc.v1.cri.registry.mirrors] [plugins.io.containerd.grpc.v1.cri.registry.mirrors.docker.io] endpoint [https://docker.m.daocloud.io] [plugins.io.containerd.grpc.v1.cri.registry.mirrors.gcr.io] endpoint [https://gcr.m.daocloud.io] [plugins.io.containerd.grpc.v1.cri.registry.mirrors.k8s.gcr.io] endpoint [https://k8s-gcr.m.daocloud.io]重启Containerd服务sudo systemctl restart containerd最佳实践与优化建议1. 合理规划拉取时间建议将大规模的镜像拉取任务安排在凌晨北京时间01-07点此时网络相对空闲可以获得更好的加速效果。2. 使用明确版本标签避免使用latest标签因为该标签变更后可能会响应旧数据。建议使用具体的版本号# 推荐使用具体版本号 docker pull m.daocloud.io/docker.io/library/nginx:1.25.3 # 不推荐使用latest标签 docker pull m.daocloud.io/docker.io/library/nginx:latest3. 监控同步状态项目提供了实时的同步状态监控同步队列状态https://queue.m.daocloud.io/status/服务状态监控https://status.daocloud.io/status/docker4. 白名单管理项目通过allows.txt文件管理支持的镜像仓库如果需要加速新的镜像仓库可以通过项目Issue提出申请。当前白名单包含超过1000个主流镜像源覆盖了绝大多数开发和生产需求。故障排除与常见问题Q1: 镜像拉取失败怎么办检查网络连接确保能够访问m.daocloud.io验证镜像地址确认镜像地址格式正确检查白名单确认镜像仓库在allows.txt中查看同步状态检查镜像是否已经同步完成Q2: 如何验证镜像完整性所有通过public-image-mirror拉取的镜像都保持与源站相同的sha256哈希值可以通过以下命令验证# 拉取镜像 docker pull m.daocloud.io/docker.io/library/nginx:1.25.3 # 查看镜像摘要 docker inspect m.daocloud.io/docker.io/library/nginx:1.25.3 | grep DigestQ3: 缓存机制是怎样的public-image-mirror采用智能缓存策略Manifest缓存1小时tag更新后1小时内同步新版本Blob缓存1分钟期间如果blob被删除可能导致404错误内容缓存30天过期后需要重新同步总结public-image-mirror为国内开发者提供了一个简单、高效、可靠的Docker镜像加速解决方案。无论是个人开发还是企业级部署都能显著提升容器镜像的拉取速度改善开发体验。通过本文介绍的多种配置方案您可以根据自己的需求选择最适合的加速方式。立即开始使用public-image-mirror让容器化开发变得更加高效顺畅项目地址https://gitcode.com/GitHub_Trending/pu/public-image-mirror【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考