镜像是一套只读模板,容器是其可读写的运行实例;拉取慢因默认直连海外 registry-1.docker.io,导致高延迟、丢包及限速,配国内镜像加速源(如 https://docker.xuanyuan.me)可有效解决。
镜像和容器是 docker 的两个核心概念:镜像(image)是只读的、可复用的模板,包含运行应用所需的所有文件、依赖和配置;容器(container)则是镜像的一个运行实例,是可读写的、有生命周期的进程环境。拉取速度慢,不改变这两个概念的关系,但直接影响你能否快速创建容器——因为没有镜像,就无法启动容器。
为什么镜像拉取会特别慢
默认走的是海外的 registry-1.docker.io,国内直连存在高延迟、丢包、TLS握手超时等问题。尤其在拉取 MySQL、Redis、GitLab 这类几百 MB 的镜像时,多层(Layer)下载叠加网络抖动,很容易卡住或失败。另外,Docker Hub 对匿名用户有 6 小时限速,同一出口 IP 下多人共用时极易触发 toomanyrequests 错误。
最直接有效的解决方式:配国内镜像加速源
原理就是让 Docker daemon 优先从国内节点拉取数据,相当于加了一层“本地中转仓”。2026 年实测仍稳定可用的地址包括:
-
轩辕镜像(推荐首选):
https://docker.xuanyuan.me—— 免费、无登录要求、支持常用镜像同步,且附带中文文档和配置示例 -
DaoCloud 镜像源:
https://docker.m.daocloud.io—— 稳定性好,适合对阿里云源失效敏感的用户 -
网易云镜像:
https://hub-mirror.c.163.com—— 老牌源,兼容性强,部分地区访问更快
配置方法统一:编辑 /etc/docker/daemon.json(Linux)或通过 Docker Desktop → Settings → Docker Engine(macOS/Windows),填入 "registry-mirrors" 数组,保存后重启 Docker 服务。建议只配一个,避免顺序尝试拖慢响应。
其他场景也要注意
registry-mirrors 只对 Docker Hub 官方镜像(如 nginx、redis:7.2)生效。如果你拉的是:
-
ghcr.io/xxx(GitHub Container Registry)→ 需单独配置 GHCR 代理或改用支持它的镜像站(如轩辕镜像已内置适配) -
gcr.io/xxx或nvcr.io/xxx→ 这些不走 registry-mirrors,得靠 HTTP 代理或工具链级转发 - 私有仓库(如公司内网 Harbor)→ 不受影响,也不应加进 mirrors 列表
群晖、树莓派、CI/CD 流水线等环境同样适用上述配置,只是入口路径略有不同(如群晖需通过 Container Manager 图形界面或 SSH 修改)。
验证和排查小技巧
配完别急着拉镜像,先执行 docker info,确认输出里有 Registry Mirrors 且地址正确。再试 docker pull hello-world 看是否秒完成。如果仍慢,检查是否 DNS 解析异常(可临时换为 114.114.114.114)、防火墙拦截 HTTPS、或镜像名拼写错误(比如误写成 nginx:lates 导致反复回源查 tag)。











