前言
docker pull 超时、镜像拉取失败时,先别急着换一堆来路不明的地址。这篇整理的是 2026 年 10 月还能用的国内 Docker 镜像加速写法,高校、实验室、公司研发机都可以照着配。
拉 Docker Hub、ghcr.io、GCR、registry.k8s.io 时,常见是慢、超时,或者碰上 401 / 429 / manifest unknown。常见原因是配错了地方:daemon.json 里的 registry-mirrors 主要管 docker.io。Kubernetes 节点用的是 containerd,不会读你笔记本 Docker Desktop 里的加速配置。
机器在腾讯云、华为云上,优先用各家内网镜像源。阿里云加速器只给本账号的阿里云 ECS 使用,而且已经停止同步最新镜像。网易云公共加速早就停了,文里仍写出那个旧地址,是怕你 daemon.json 里还留着。换到笔记本、另一家云、家里 NAS,或者还要拉 ghcr.io、K8s 官方镜像,用 轩辕镜像专业版 更省事:注册后复制专属域名,再改配置、测拉取。分平台步骤见 使用手册,报错查 FAQ。
国内 Docker 镜像源会变,建议收藏,我们按月更新。生产以 xuanyuan.cloud 为准。流量在 充值中心 买——新人使用仅 ¥2.9 起,50GB 仅需 ¥8。
🔍 10 月 6 日最新可用镜像源加速
云厂商内网源,以及别再用的旧公共源
| 来源 | 地址 | 10 月状态 | 适用范围 |
|---|---|---|---|
| 腾讯云 | https://mirror.ccs.tencentyun.com | 同云可用,只支持内网 | 仅腾讯云 CVM |
| 阿里云 | https://xxx.mirror.aliyuncs.com | 同云可用;已停止同步最新镜像 | 仅阿里云 ECS,地址在控制台按账号获取 |
| 华为云 | 按 SWR 控制台文档配置 | 同云可用 | 华为云环境 |
| 网易云 | https://hub-mirror.c.163.com | 已停用,勿再配置 | 旧地址,留着只会拖慢拉取 |
怎么选:
- 腾讯云、阿里云、华为云内网镜像,只在对应云服务器上拉 Docker Hub。换到本机、另一家云、CI、家里 NAS,通常无效,也基本不管
ghcr.io和registry.k8s.io。 - 腾讯云
https://mirror.ccs.tencentyun.com只支持云服务器内网访问,不支持公网加速。说明见 腾讯云 Docker 镜像源。 - 阿里云加速器地址按账号生成。非阿里云机器访问会返回 HTTP 403。该加速器已停止同步最新镜像:镜像拉不下来,或
latest不是 Docker Hub 上的当前版本时,不要继续把它当同步源。说明见 阿里云镜像加速器。 - 网易云等大厂公共 Docker 镜像加速早已停服。配置里还留着
hub-mirror.c.163.com的,删掉。 - 要跨环境、团队共用,或加速 GHCR、K8s 官方仓库,用轩辕镜像专业版。
轩辕镜像专业版(推荐)
打开 xuanyuan.cloud 注册。个人中心能看到专属域名(形如 xxx.xuanyuan.run)和镜像账户 / 镜像密码。前缀以个人中心显示为准。Docker Hub、ghcr.io、GCR、registry.k8s.io 都能走。Linux、Docker Desktop、群晖、极空间、威联通也能配。
流量在 充值中心 购买:新人使用仅 ¥2.9 起,50GB 仅需 ¥8。
轩辕镜像免费版(仅体验)
地址是 https://docker.xuanyuan.me(注意是 .me,不是 .run)。免费、不用登录,但只加速 Docker Hub,没有 GHCR / K8s。
免费版按请求次数限流:每小时 100 次,每天 1,000 次。报错里出现 docker.xuanyuan.me 且状态为 429 时,一般要等大约 6 小时才会恢复。生产、CI 和批量拉取不要用这个地址。差别见 免费版与专业版。限流说明见 免费版入口 和 429 说明。
动手顺序:先 注册专业版,需要的话先 充值,再在个人中心复制 xxx.xuanyuan.run,写进后面的加速配置。
一键安装与配置镜像加速(推荐方案)
还没装 Docker 的 Linux 机器,可以用官方一键脚本装 Docker 和 Docker Compose。测试环境一条命令即可。生产环境请先下载脚本看过,再执行。
脚本大约覆盖 15 种发行版(含统信 UOS、深度 Deepin 等)。装好后把专业版专属加速地址写进 daemon.json。
最好先注册专业版并拿到专属域名,再跑脚本,少改一次配置。
执行命令
测试环境
bashbash <(wget -qO- https://get.xuanyuan.cloud/docker.sh)
备用地址:
bashbash <(wget -qO- https://get.xuanyuan.me/docker.sh)
生产环境
主地址下载失败时,把下面命令里的域名换成 https://get.xuanyuan.me/docker.sh。
bash# 1. 下载脚本到本地 wget https://get.xuanyuan.cloud/docker.sh -O docker-install.sh # 2. 审计脚本源码 less docker-install.sh # 3. 执行脚本 bash docker-install.sh
脚本特性
- 发行版覆盖:openEuler、OpenCloudOS、Anolis OS、Alinux、Kylin Linux、统信 UOS、深度 Deepin、Fedora、Rocky Linux、AlmaLinux、Ubuntu、Debian、CentOS(8+ / Stream)、RHEL、Oracle Linux
- 多源安装包:内置阿里云、腾讯云、华为云、中科大、清华等国内软件源,便于装 Docker 本体
- 老系统兼容:Ubuntu 16.04、Debian 9/10 等有兼容分支
- 失败回退:包管理器失败时可切二进制安装
- 跨系统提示:检测到 macOS / Windows 时给出 Docker Desktop 安装指引
- 开源:github.com/SeanChang/xuanyuan_docker_proxy
CentOS 7:已 EOL,yum 源大量下线,一键脚本不支持 CentOS 7。请迁到 Rocky Linux、AlmaLinux 或 CentOS Stream 8+。
验证:
bashdocker --version docker compose version
镜像搜索与在线工具
注册专业版后,可在 Docker 镜像搜索 复制带专属域名的 docker pull 命令:
合规服务
轩辕镜像在境内运营,会拦截违规、违法和明显恶意的镜像,只加速合规开源镜像。高校、科研单位、国企等也在用。细节见 镜像合规。
支持的操作系统详情
| 分类 | 操作系统 | 版本 | 支持状态 | 说明 |
|---|---|---|---|---|
| 国产操作系统 | openEuler (欧拉) | 20.03+, 22.03+, 24.03+ | 支持 | 华为开源,兼容 CentOS |
| OpenCloudOS | 9.x | 支持 | 腾讯开源,兼容 CentOS 9 | |
| Anolis OS (龙蜥) | 7.x, 8.x | 支持 | 阿里云支持,兼容 RHEL | |
| Alinux (阿里云) | 2.x, 3.x | 支持 | 阿里云 ECS 默认系统 | |
| Kylin Linux (银河麒麟) | V10 | 支持 | 国产系统,兼容 RHEL | |
| 统信 UOS、深度 Deepin | 主流版本 | 支持 | 信创桌面与服务器 | |
| CentOS 替代 | Rocky Linux / AlmaLinux | 8.x, 9.x | 支持 | 长周期,兼容 RHEL |
| 创新发行版 | Fedora | 34+ | 支持 | Red Hat 上游 |
| 传统发行版 | Ubuntu | 16.04+ | 支持 | 含老版本兼容 |
| Debian | 9+ | 支持 | 含老版本兼容 | |
| CentOS | 8, 9, Stream | 支持 | 不含 CentOS 7 | |
| RHEL / Oracle Linux | 7, 8, 9 | 支持 | 企业级发行版 |
脚本会检测系统类型和版本,一般不必手选安装方案。
手动配置镜像加速(已安装 Docker 环境)
先注册专业版,准备好域名
不要对专属域 *.xuanyuan.run 执行 docker login。群晖等 NAS 尤其不要。
- 只有拉取走公共登录域时,才对
docker.xuanyuan.run登录一次:
bashdocker login docker.xuanyuan.run
文中的 xxx.xuanyuan.run 请换成你自己的前缀。非 Hub 仓库还有 xxx-ghcr、xxx-k8s、xxx-gcr 等后缀,见 支持的仓库。
Linux 系统
推荐配置(轩辕专业版专属地址)
写入配置之前,把 xxx.xuanyuan.run 换成你的专属前缀。
bashsudo mkdir -p /etc/docker cat <<EOF | sudo tee /etc/docker/daemon.json { "registry-mirrors": ["https://xxx.xuanyuan.run"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
验证时先执行下面的命令。输出里要有你的专属地址。
bashdocker info | grep "Registry Mirrors" -A 3
然后再拉取一次,确认镜像能下来:
bashdocker pull nginx:latest
基础配置(免费体验,仅 Docker Hub)
临时体验可写入 https://docker.xuanyuan.me。不含 GHCR / K8s,别当生产方案。
注意:
registry-mirrors主要作用于 Docker Hub(docker.io)。要加速ghcr.io、registry.k8s.io,还得在专业版专属域名之外,去配后面的 containerd 或 Podman。原因见 mirrors 为何不生效。
macOS(Docker Desktop)
推荐配置(轩辕专业版专属地址)
- 打开菜单栏 Docker 图标,进入「Settings」,再进入「Docker Engine」。
- 修改 JSON,把
xxx.xuanyuan.run换成你的专属前缀:
json{ "registry-mirrors": ["https://xxx.xuanyuan.run"] }
- 点击「Apply & Restart」。
- 执行
docker info,核对 Registry Mirrors。
基础配置(免费体验)
- 打开「Settings」,进入「Docker Engine」。
- 添加
"registry-mirrors": ["https://docker.xuanyuan.me"]。 - 点击「Apply & Restart」。
生产环境不要用 insecure-registries 跳过 TLS。证书问题见 TLS 证书 FAQ。
Windows(Docker Desktop)
推荐配置(轩辕专业版专属地址)
- 打开任务栏 Docker 图标,进入「Settings」,再进入「Docker Engine」。
- 写入与 macOS 相同的 JSON。
- 点击「Apply & Restart」。
- 执行
docker info,确认 Registry Mirrors。
基础配置(免费体验)
将 mirrors 改为 https://docker.xuanyuan.me,再点击「Apply & Restart」。
其他容器环境加速配置
K8s containerd 镜像加速配置
适用于 Kubernetes、K3s 或自建 containerd。集群节点不会读取 Docker 的 daemon.json,必须在 containerd 里配多仓库 mirrors,否则容易出现 ImagePullBackOff。
适用版本
| containerd 版本 | 支持说明 |
|---|---|
| < 1.4 | 配置结构不同,新环境别用 |
| 1.4 ~ 1.7.x | 按下面步骤即可 |
| ≥ 1.7.x | 推荐 |
查看版本:containerd --version
配置步骤
- 若尚无配置文件,可初始化:
bashcontainerd config default | sudo tee /etc/containerd/config.toml
- 编辑
/etc/containerd/config.toml。把xxx换成你的专属前缀。
生产环境不要设置 insecure_skip_verify = true,必须使用合法 TLS。
在 registry mirrors 下增加:
toml[plugins."io.containerd.grpc.v1.cri".registry] [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["https://xxx.xuanyuan.run"] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"] endpoint = ["https://xxx-k8s.xuanyuan.run"] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"] endpoint = ["https://xxx-gcr.xuanyuan.run"] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"] endpoint = ["https://xxx-ghcr.xuanyuan.run"] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"] endpoint = ["https://xxx-k8s.xuanyuan.run"]
一个加速地址不可用时,在 endpoint 里按顺序写多个专属地址:
tomlendpoint = ["https://node1.xxx.xuanyuan.run", "https://node2.xxx.xuanyuan.run"]
生效与验证
先重启 containerd,再核对配置,然后拉一次镜像:
bashsudo systemctl restart containerd grep -A 5 "docker.io" /etc/containerd/config.toml ctr images pull xxx.xuanyuan.run/library/alpine:latest kubectl run test-pod --image=nginx:latest kubectl describe pod test-pod | grep "Image:"
更细的截图步骤见 containerd 教程、K3s 教程。
nerdctl 镜像加速配置(K8s / 企业常用)
nerdctl 与 containerd 共用配置,一般不必再配一遍。
bashnerdctl pull nginx:latest nerdctl inspect nginx:latest | grep -i "registry" nerdctl run -d -p 8080:80 --name nginx-test nginx:latest
可选:自建 /etc/nerdctl/nerdctl.toml 写 mirrors。多数场景可以跳过。
Podman 镜像加速配置
新建 /etc/containers/registries.conf.d/custom.conf:
iniunqualified-search-registries = ['docker.io'] [[registry]] prefix = "docker.io" location = "registry-1.docker.io" [[registry.mirror]] location = "xxx.xuanyuan.run" [[registry]] prefix = "k8s.gcr.io" location = "k8s.gcr.io" [[registry.mirror]] location = "xxx-k8s.xuanyuan.run" [[registry]] prefix = "gcr.io" location = "gcr.io" [[registry.mirror]] location = "xxx-gcr.xuanyuan.run" [[registry]] prefix = "ghcr.io" location = "ghcr.io" [[registry.mirror]] location = "xxx-ghcr.xuanyuan.run" [[registry]] prefix = "registry.k8s.io" location = "registry.k8s.io" [[registry.mirror]] location = "xxx-k8s.xuanyuan.run"
验证:
bashpodman pull docker.io/library/alpine:latest podman inspect alpine:latest | grep -i "registry"
更多见 Podman 教程。
镜像拉取使用示例
拉取官方镜像
bash# Docker:专属域路径(替换 xxx) docker pull xxx.xuanyuan.run/library/mysql:8.0 docker pull xxx.xuanyuan.run/library/nginx:1.27 # 已配置 registry-mirrors 后可用短名 docker pull nginx:1.27 docker pull mysql:8.0 # 公共登录域(需先 docker login docker.xuanyuan.run) docker pull docker.xuanyuan.run/library/alpine:3.20 # 免费版(仅 Hub) docker pull docker.xuanyuan.me/library/alpine:3.20 # containerd ctr images pull xxx.xuanyuan.run/library/mysql:8.0 ctr images pull xxx-k8s.xuanyuan.run/pause:3.9 # nerdctl nerdctl pull mysql:8.0 nerdctl pull registry.k8s.io/pause:3.9 # Podman podman pull mysql:8.0 podman pull nginx:1.27
拉取用户自定义镜像
bashdocker pull xxx.xuanyuan.run/username/my-web-app:v1.0 docker pull xxx-ghcr.xuanyuan.run/username/my-tool:v2.1 nerdctl pull gcr.io/google-samples/node-hello:1.0
去掉域名前缀可用 docker tag,见 去前缀 FAQ。
Docker Compose 使用示例
密码用环境变量注入,不要写进仓库。
docker-compose.yml 示例(Nginx + MySQL)
yamlservices: web: image: xxx.xuanyuan.run/library/nginx:1.27 ports: - "8080:80" volumes: - ./nginx/conf:/etc/nginx/conf.d restart: unless-stopped db: image: xxx.xuanyuan.run/library/mysql:8.0 environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: test_db MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - mysql-data:/var/lib/mysql - ./mysql/init:/docker-entrypoint-initdb.d restart: unless-stopped healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u${MYSQL_USER}", "-p${MYSQL_PASSWORD}"] interval: 10s timeout: 5s retries: 3 volumes: mysql-data:
若已配置 registry-mirrors,也可继续写短名 nginx:1.27 / mysql:8.0。Compose 说明见 Docker Compose 配置。
.env 文件示例
envMYSQL_ROOT_PASSWORD=StrongRootPassw0rd! MYSQL_USER=appuser MYSQL_PASSWORD=AppUserPassw0rd!
安全说明
- 把
.env加入.gitignore,不要提交到 Git。 - 生产用 Vault 或 Kubernetes Secrets 管密码。
- 定期轮换数据库密码。
- 收紧数据卷权限,例如
chmod 700。
运行与停止
bashdocker compose up -d docker compose ps docker compose logs -f docker compose down docker compose down -v
containerd 单独使用示例
下面这条命令使用 --net-host,只在测试时使用。
bashctr images pull xxx.xuanyuan.run/library/nginx:1.27 ctr run --rm -t --net-host xxx.xuanyuan.run/library/nginx:1.27 nginx-test ctr containers ls ctr tasks stop nginx-test
生产环境使用自定义网络:
bashctr network create nginx-net ctr run --rm -t --net nginx-net -p 8080:80 xxx.xuanyuan.run/library/nginx:1.27 nginx-prod
Podman 使用示例(兼容 Docker 命令)
bashpodman run -d -p 6379:6379 --name redis-test --restart=always redis:7.2 podman ps podman exec -it redis-test redis-cli podman stop redis-test && podman rm redis-test
容器运行时 vs 加速配置位置对照表
| 容器运行时 | 配置文件位置 | 加速类型支持 | 适用场景 |
|---|---|---|---|
| Docker | /etc/docker/daemon.json | Docker Hub(registry-mirrors) | 个人 / 企业单机 |
| containerd | /etc/containerd/config.toml | 多仓库(docker.io / ghcr.io / registry.k8s.io 等) | K8s 集群 / 容器云 |
| nerdctl | 共享 containerd 配置 | 多仓库,命令接近 Docker | 企业生产替代 Docker CLI |
| Podman | /etc/containers/registries.conf.d/*.conf | 多仓库 | 无守护进程 / 边缘 |
群晖、威联通、极空间:把专属域名写进容器引擎即可。教程见 群晖、威联通、极空间。不要对专属域做 docker login。
企业生产环境配置 Checklist
| 检查项 | 要求 |
|---|---|
| 镜像源 | 生产用轩辕专业版专属节点;别把网易等已停公共源、不稳定免费源写进生产机 |
| TLS | 开 HTTPS / 合法证书,别开 insecure |
| 高可用 | mirrors 配两个以上 endpoint,单点挂了还能拉 |
| 本地缓存 | Harbor 等把常用镜像缓存进内网 |
| 密码 | 别把数据库密码写进仓库;用密钥或 Secrets |
| 权限 | 容器尽量非 root;数据目录权限收紧 |
| 观察 | 看拉取是否经常失败、是否明显变慢 |
| 日志 | 拉取相关日志按公司合规要求留存 |
| 流量 | 专业版先 充值;遇到 402 去充值,别反复改密码 |
| 脚本 | 生产先把 docker.sh 下载下来看完再执行 |
常见问题(FAQ)
Q1:配置了 Docker 镜像加速,部分镜像仍拉不下来?
registry-mirrors 主要对 Docker Hub(docker.io)生效。
拉 ghcr.io、registry.k8s.io 时,按运行时改对应配置:
- containerd / nerdctl:在
config.toml配对应仓库 mirrors。K8s 用xxx-k8s.xuanyuan.run。 - Podman:在
registries.conf加 mirror。 - 团队 / 生产:用 轩辕镜像专业版 专属域名,把 Hub、GHCR、K8s 等仓库都配上。
Q2:网易云 hub-mirror.c.163.com 还能用吗?
不能。 网易云等大厂公共 Docker 镜像加速已停用。
请从 daemon.json 或 Desktop 配置中删除该地址。
同云服务器可以改用云厂商内网源。跨环境改用轩辕专业版或免费版。
Q3:阿里云、腾讯云镜像加速配好了,家里电脑为什么还是慢?
这些地址只在对应云内网生效。
笔记本、另一家云、CI 拉不动,是这些地址的使用范围。
跨环境请改用轩辕专属域名。
阿里云加速器还有一层限制:它已停止同步最新镜像。latest 可能不是 Docker Hub 上的当前版本。非阿里云机器访问还会返回 HTTP 403。说明见 阿里云镜像加速器。
Q4:NAS(群晖、威联通、极空间)怎么配?
- 登录 轩辕镜像专业版。
- 打开 使用手册,选对应 NAS。
- 在 NAS 容器引擎里写入专属加速地址。优先写专属域,这样不必
docker login。 - 保存并重启容器服务。
- 拉取
nginx:latest,确认镜像能下来。
Q5:K8s Pod 提示镜像拉取失败 / ImagePullBackOff?
先确认要改的是节点上的 containerd 或 K3s,不是笔记本上的 Docker Desktop。
- 打开节点上的
config.toml。 - 确认文件里有 Pod 使用的仓库。
registry.k8s.io对应xxx-k8s.xuanyuan.run。 - 执行
sudo systemctl restart containerd。 - 执行
kubectl describe pod <name>,查看 Events。
证书问题见 TLS FAQ。架构不匹配见 no matching manifest。
Q6:Podman 提示 insecure registry?
- 地址是 HTTP 时,仅测试可以写
insecure = true。生产必须使用 HTTPS。 - 地址是 HTTPS 时,检查证书。自签证书放入
/etc/containers/certs.d/xxx.xuanyuan.run/。 - 生产使用专业版的合法证书。
Q7:企业怎么保证镜像源稳定?
- 用轩辕专业版专属节点,带宽不要和公共免费源抢。
- mirrors 写多个 endpoint,互为备份。
- 常用镜像放进 Harbor,少依赖外网。
- 拉取经常失败时,先查节点和流量。流量不够就去 充值中心 加流量,必要时找官网支持。
401 / 402 / 429 / manifest unknown 等错误码说明见 FAQ 列表。
总结
- 同云 ECS、只拉 Docker Hub:腾讯云、华为云继续用同云内网源。阿里云加速器已停止同步最新镜像,要当前版本时改用轩辕镜像专业版。配置里删掉网易等已停公共源。
- 本机、跨云、NAS、CI,或要 GHCR / K8s:用 轩辕镜像专业版 专属域名。K8s 改 containerd 的多仓库 mirrors。常用镜像可以再放进 Harbor。
- 自己临时试 Hub:可以用
docker.xuanyuan.me或一键脚本。免费版每小时 100 次、每天 1,000 次。团队和生产请充专业版流量。 - 安全:生产不要打开 insecure。不要把密码写进仓库。远程脚本先下载看过,再执行。
常用链接:
下次 docker pull 又超时,先回来对一下这份 10 月国内 Docker 镜像源加速列表,再改配置。
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
