国内拉取 Docker Hub 和 GitHub Container Registry(GHCR)镜像时,经常遇到连接超时或速度不稳定。本文整理当前可用的国内镜像源,并说明常见的镜像地址替换方式。
本文更新于 2026 年 7 月 16 日。镜像服务的规则可能调整,使用前请以官方文档为准。
Docker Hub 镜像
临时使用时,在原镜像名称前增加 docker.1ms.run:
# Docker 官方镜像
docker pull docker.1ms.run/library/nginx:1.27
docker pull docker.1ms.run/library/alpine:3.20
# Docker Hub 用户或组织镜像
docker pull docker.1ms.run/portainer/portainer-ce:2.21.5Docker 官方镜像属于 library 命名空间,该服务也支持省略它:
docker pull docker.1ms.run/nginx:1.27GHCR 镜像
GHCR 镜像需要把 ghcr.io 替换为 ghcr.1ms.run,后面的组织名、镜像名和标签保持不变:
# 原地址
docker pull ghcr.io/linuxserver/webtop:latest
# 加速地址
docker pull ghcr.1ms.run/linuxserver/webtop:latest在 compose.yaml 中同样只替换域名:
services:
webtop:
image: ghcr.1ms.run/linuxserver/webtop:latest
container_name: webtop
ports:
- "3000:3000"实际部署时应把示例中的 latest 换成明确版本,避免标签变化影响重建结果。
其他 Docker Hub 镜像源
dongyubin/DockerHub 持续整理国内可用的 Docker Hub 镜像源。项目在 2026 年 6 月 13 日列出的可用地址如下:
| 镜像源 | 说明 |
|---|---|
https://docker.1panel.live |
仅限中国地区 |
https://docker.1ms.run |
本文示例使用 |
https://proxy.vvvv.ee |
同时提供离线镜像下载 |
https://dockerproxy.net |
Docker Proxy |
https://dockerproxy.link |
Docker Proxy |
https://docker.m.daocloud.io |
DaoCloud 镜像站 |
https://docker.jiaxin.site |
简行镜像 |
https://docker.xuanyuan.me |
轩辕镜像,另有会员服务 |
https://registry.cyou |
容器镜像管理与多仓库代理 |
https://free.hubfast.cn |
HubFast 免费入口 |
https://mirror.ccs.tencentyun.com |
腾讯云内网使用,不支持外网访问 |
https://mirror.houlang.cloud |
需要注册并获取令牌 |
这些服务可能存在地区、白名单、限流、注册或令牌限制,也可能随时停止服务。本文的命令统一使用 docker.1ms.run,需要切换时可以先从这份列表中选择地址,再自行验证目标镜像能否拉取。项目还维护了已失效地址列表,排障时可以用来确认旧配置是否已经过期。
其他镜像仓库
1ms.run 还提供 GCR、Kubernetes、Quay、Microsoft、NVIDIA 和 Elastic 等镜像仓库的加速入口,但免费范围和使用条件可能不同,本文不再展开。具体域名与规则请查看支持列表。
注意事项
- 固定镜像版本,生产环境可以进一步固定 digest,不要长期依赖
latest。 - 第三方代理可能记录访问地址和镜像名称,私有镜像应先评估认证信息与安全边界。
- 代理可访问不代表目标镜像一定存在,仍可能受缓存、回源或内容策略影响。
- 保留官方源站地址,确保代理不可用时能够快速切换。
总结
Docker Hub 镜像使用 docker.1ms.run 前缀;GHCR 镜像则把 ghcr.io 替换为 ghcr.1ms.run。对日常使用而言,掌握这两种方式基本足够。
可选:只有希望 Docker Hub 拉取默认使用该镜像源时,才需要配置 Docker daemon。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker