2026最新国内Docker镜像源加速配置指南(含可用地址) 📅 发布时间:2026/9/15 14:05:48 👁 浏览次数: 很多刚开始接触 Docker 的朋友几乎都会在同一个地方栽跟头——执行docker pull的时候进度条卡在那里一动不动或者慢到让人怀疑人生。尤其是拉取一些体积比较大的镜像比如 GitLab、MySQL、Redis 这些动辄几百 MB要是网络环境不好等上半小时都是常有的事。这里说的“网络环境不好”绝大程度上是连接 Docker Hub 官方仓库的网络链路问题。Docker Hub 毕竟架在境外国内访问延迟高、不稳定甚至经常直接超时。所以“国内镜像源加速”就成了刚需。说白了就是把 Docker 拉取镜像的请求从官方仓库转到国内能快速访问的镜像仓库帮你把下载速度拉满。8月初我系统整理过一次镜像源列表最近又有很多朋友反馈说其中几个地址已经失效了。所以借着这次更新把截至2026年9月8日仍然可用、速度也比较稳定的国内 Docker 镜像源重新梳理一遍包含配置方法、可用性备注以及我实际使用中踩过的坑。1. 整体思路与加速原理1.1 为什么要用国内镜像源Docker 官方默认的镜像仓库是 Docker Hub地址是docker.io。虚拟机在拉取镜像时会从docker.io获取镜像层数据。这个地址对国内网络环境不友好经常出现下面的情况docker pull nginx:latest然后终端就卡在这一行Pulling from library/nginx半天没反应最后直接给你报net/http: TLS handshake timeout。这其实就是网络链路超时了。国内各厂商提供的镜像源核心工作原理是镜像仓库缓存与转发。这些源会实时同步 Docker Hub 上的热门镜像你在国内拉取时实际是从他们的服务器上下载走的自然就是国内的高速链路速度自然快很多。注意镜像源经济的本质是“边下边缓存”热门大镜像效果最明显。冷门或者刚发布的镜像如果源站没有缓存还是会回源到 Docker Hub 拉取速度提升有限。1.2 加速列表能用多久这里得先说一个比较现实的问题国内 Docker 镜像源属于“灰色地带”服务没有一个官方承诺“永久可用”。因为政策合规原因过去几年已经有好几个头部云厂商的 Docker 加速器下线了。所以你会发现网上各种教程给的地址今天能用过两个月可能就 404 了。这也是为什么我坚持定期更新这份列表而不是一篇文章写死。我个人的建议是别只配一个源多配几个备用源。就像手机信号一样一个基站没信号了自动切到另一个。Docker 支持配置多个registry-mirrors拉取时如果一个源失败会自动尝试下一个。2. 核心配置方法与可用地址2.1 配置前先看一眼现状如果你还没改过配置先查一下当前 Docker 的配置cat /etc/docker/daemon.json如果是全新安装的 Docker大概率会提示文件不存在或者内容是空的。云服务器自带 Docker 的话有些厂商可能已经在里面预置了自家的加速地址这个要分情况看如果是正规云厂商的公共镜像加速地址可以留着如果感觉速度还是慢建议替换成下面的列表。2.2 可用加速源地址2026年9月更新下面这个表格是我从 8 月到现在实际测试过、还在正常服务的镜像源地址。这里要特别说明由于表格里的地址可能会过期我不能保证我写出来的时候能用你看到文章的时候也一定可用但以下这些是我验证过存活率相对高的。我测试的时间是 2026 年 9 月上旬测试动作为docker pull alpine:latest连续 3 次成功则视为“可用”。镜像源名称加速地址备注网易http://hub-mirror.c.163.com老牌源速度稳定偶尔抽风中科大https://docker.mirrors.ustc.edu.cn需要看时间段高峰期稍慢百度https://mirror.baidubce.com因为兼容性比较好存活时间很长腾讯云https://mirror.ccs.tencentyun.com仅适用于腾讯云内网服务器外网不可用社区公共源https://docker.1ms.run社区维护目前速度很不错社区公共源https://docker.xuanyuan.me备用实测可用社区公共源https://docker.jianmeng.net备用实测可用社区公共源https://docker.udayun.com备用实测可用社区公共源https://docker.1panel.live备用实测可用这些社区公共源的优点是速度快缺点是有可能是个人或者小团队维护的稳定性存在不确定性不保证长期有效也存在被恶意污染的风险。所以如果用于生产环境建议优先考虑官方云厂商的地址。2.3 配置 daemon.json打开配置文件sudo nano /etc/docker/daemon.json确保文件内容格式正确。下面是我目前在用的一份配置一次性写入了多个备选源{ registry-mirrors: [ https://docker.mirrors.ustc.edu.cn, http://hub-mirror.c.163.com, https://docker.1ms.run, https://docker.xuanyuan.me, https://mirror.baidubce.com ] }这里要提醒几个细节地址不要带路径比如https://docker.mirrors.ustc.edu.cn/docker/这种写法是错误的直接到域名即可。http 和 https 都有。如果源只支持 http而你写了 httpsDocker 会报证书校验失败。所以网易那个hub-mirror.c.163.com地址务必写成http://开头。配置为数组格式每个字符串后面记得加逗号最后一个不用加。提示Docker 23.0 及以上版本对registry-mirrors的校验比较严格如果配置格式不对Docker 会直接启动失败。2.4 重启生效与验证修改配置后重启 Docker 服务sudo systemctl daemon-reexec sudo systemctl restart docker没有 systemd 的环境比如某些旧版 CentOS 7 或者 WSL2 内手工安装的 Docker可以用sudo service docker restart重启完成后查看 Docker 的镜像源配置是否生效docker info往输出内容里找Registry Mirrors这一段如果列出了你配置的地址就说明配置生效了Registry Mirrors: https://docker.mirrors.ustc.edu.cn/ http://hub-mirror.c.163.com/然后拉一个镜像验证一下速度docker pull nginx:latest如果速度起飞说明你已经走在了正确的道路上。2.5 除了改 daemon.json还有什么办法如果你用的是 Docker DesktopWindows 或 macOS也可以直接在图形界面里配置镜像源不必手动改文件。路径一般是在WindowsSettings→Docker EnginemacOSPreferences→Docker Engine会打开一个 JSON 编辑框把registry-mirrors那段直接粘进去点Apply Restart即可。这种方式比改/etc/docker/daemon.json更直观适合不习惯命令行的朋友而且不需要担心文件权限问题。3. 实操过程与常见场景3.1 从零开始装 Docker 配置加速源如果你是新机器还没装 Docker那就顺手一起做了。以 Ubuntu 22.04/24.04 为例sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io安装完成后立刻编辑/etc/docker/daemon.json把加速源配上再重启 Docker。这样一来后续所有docker pull都不会踩坑。注意这里的下载源指向的是 Docker 官方download.docker.com如果服务器在境外或者有良好的网络环境这一步没问题。如果下载 Docker 本身的安装包很慢可以考虑用清华 TUNA 镜像源安装这个不在本文范围内不展开说。3.2 实战用加速源拉取 MySQL 8.0有人问拉 MySQL 8.0 会不会很慢体积确实不小大概 600 MB 左右。没配加速源的时候我曾经在一个 5Mbps 的带宽机器上拉了一个多小时。配置了加速源之后同一台机器3 分钟内搞定。下面是完整的操作流程# 拉取镜像 docker pull mysql:8.0 # 启动容器并设置 root 密码 docker run -d \ --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDyourpassword \ mysql:8.0启动后验证容器状态docker ps如果发现容器一直处于restarting状态或者docker logs mysql8里面有报错多半是端口被占用或者内存不够这个后面问题排查部分再说。3.3 实战Docker Compose 与镜像加速Docker Compose 本身不涉及镜像源配置因为它底层调用的还是 Docker 引擎。只要/etc/docker/daemon.json配好了Compose 拉镜像时也是走加速源的这一点很多人容易误解觉得 Compose 要单独配。比如你用docker compose up -d启动一套 Wordpress MySQL 环境首次拉镜像时依然会走加速源速度很快services: wordpress: image: wordpress:latest ports: - 8080:80 environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_PASSWORD: root depends_on: - mysql mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root写好docker-compose.yml后执行docker compose up -dCompose 会先拉取镜像此时你会观察到速度比原来快了很多这就是镜像源加速在背后起效。3.4 补充场景Ollama 与 HuggingFace 镜像最近 AI 相关的服务很火尤其是在私有化部署大模型场景里Ollama 拉取模型的时候也可以用到国内加速源。这个严格来说不属于 Docker 镜像源的范畴但热词里面有人搜到了顺手提一嘴。Ollama 默认从ollama.com拉模型国内网络速度同样不太乐观。可以通过设置环境变量来指定其他源export OLLAMA_HOST0.0.0.0 export OLLAMA_MODELS/opt/ollama如果拉模型太慢还可以考虑从 ModelScope魔搭社区下载模型文件后手动放到OLLAMA_MODELS目录里这个方式对网络要求更低速度也比较稳定。HuggingFace 同理huggingface.co在国内访问困难可以配置镜像站hf-mirror.comexport HF_ENDPOINThttps://hf-mirror.com之后再用huggingface-cli download下载模型速度就会正常。4. 常见问题与排查技巧4.1 配置了加速源但 Docker 启动失败表现重启 Docker 后直接报错服务起不来。journalctl -u docker --no-pager | tail -20大概率是daemon.json写坏了。常见原因漏写了逗号JSON 格式不对写了https://但源只支持http://镜像源地址本身已经失效重启时 Docker 尝试连接失败。解决办法备份当前的配置文件然后重写一份最简单的再逐步加源sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak检查 JSON 格式可以用python3 -m json.tool /etc/docker/daemon.json如果有语法错误会直接给你指出来在哪一行。4.2 配置了加速源但拉镜像还是慢如果确认配置生效docker info能看到 Registry Mirrors但拉取速度还是慢有几种可能镜像太冷门源站没有缓存回源到 Docker Hub 拉取。处理办法多试几个源或者直接忍受这一次慢速之后同样的镜像第二次拉取就快了。镜像源自身负载过高高峰期速度下降。处理办法换一个备用源或者在非高峰期操作。你所在网络环境本身带宽极小比如家里 1Mbps 上行/下行那换哪个源都救不了。可以试着用time命令做一次对比测试time docker pull alpine:latest time docker pull nginx:latest同一网络环境下越大的镜像差距越明显。4.3 部分镜像拉取时报“not found”这种一般不是源的问题而是镜像本身在 Docker Hub 上就是私有仓库或者library官方里有但在第三方源上不同步。比如有些用户自定义的镜像myuser/myrepo第三方源不一定缓存了。处理办法临时取消镜像源直接从官方拉docker pull docker.io/myuser/myrepo:latest如果这样能拉下来说明源没有问题只是这个镜像在源上没缓存。4.4 Docker Desktop 报错 Failed to startWindows 上的 Docker Desktop 经常报这个错热词里也有virtualization support not detected这个和镜像源无关。一般是因为 BIOS 里没开启虚拟化VT-x/AMD-V或者 WSL2 没有正确安装。解决办法进入 BIOS开启 Intel VT-x 或 AMD SVM确保 Windows 功能里勾选了“适用于 Linux 的 Windows 子系统”安装 WSL2 内核更新包重启后重新打开 Docker Desktop。如果已经开启虚拟化还是报错检查 Hyper-V 是否被其他虚拟机软件比如老版本 VirtualBox占用。4.5 Docker 权限错误安装完 Docker 后直接运行docker ps报permission denied while trying to connect to the Docker daemon socket这是因为当前用户不在docker用户组里。解决办法sudo usermod -aG docker $USER newgrp docker重新登录终端后就能正常使用。如果是在远程服务器上执行完usermod后可能需要重新 SSH 连接一次。5. 写在最后的实操心得镜像源这件事本质上就是“给 Docker 换一条更快的下载通道”。配置方法不难难的是保持可用地址的更新因为这属于持续变化的外部资源。我个人在实际使用中的一个体会是永远不要把鸡蛋放在一个篮子里。哪怕你现在用的是官方云厂商的加速器也可能在某天毫无征兆地停止服务社区公共源同样如此可能昨天还飞快的源今天就挂了。所以建议每隔一段时间就用docker pull alpine:latest测试一下你配置的所有源把失效的及时替换掉保底保留至少两个可用源这样遇到“源挂掉”的突发情况Docker 会自动切换到下一个可用源不影响正常拉取。还有一个小技巧如果你拉取的大镜像比较多可以留意一下 Docker 的存储占用情况。docker system df加速源虽然解决的只是下载速度问题但用久了容易让人忽略镜像本身占用的磁盘空间。如果发现/var/lib/docker越来越膨胀记得及时清理无用的悬空镜像和停止的容器docker system prune -a --volumes这个命令会清理所有不再使用的镜像、容器和卷能释放出不少空间。