Docker Hub 国内镜像源完全指南 2026
docker pull 卡 1 KB/s、unauthorized: incorrect username or password 是国内 2024-06 后的新常态 — Docker Hub 收紧 IP 限流 + 多个公益镜像(中科大、网易、DaoCloud)关停。本文给 2026 实测可用配置。
一、2026 仍可用镜像源
| 镜像 | 地址格式 | 注册要求 | 稳定性 |
|---|---|---|---|
| 阿里云 ACR | https:// | 阿里云账号(免费) | ★★★★★ |
| 腾讯云 | https://mirror.ccs.tencentyun.com | 腾讯云 CVM 内网免费 | ★★★★ |
| 华为云 | https:// | 华为云账号 | ★★★★ |
| 1ms.run | https://docker.1ms.run | 无 | ★★★(公益,流量大时不稳) |
| DockerProxy | https://dockerproxy.com | 无 | ★★(已变 readonly) |
| 清华源 docker(测试) | https://docker.mirrors.ustc.edu.cn | 无 | ★(部分已停) |
二、阿里云 ACR(推荐主用)
开通步骤
- 登录 https://cr.console.aliyun.com,选「个人实例」→ 镜像加速器
- 选地域(华东 1 杭州、华北 2 北京 等,选离你最近)
- 复制专属加速地址,形如
https://xxxxxxxx.mirror.aliyuncs.com
配置 daemon.json
Linux:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://xxxxxxxx.mirror.aliyuncs.com",
"https://docker.1ms.run"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
macOS / Windows:Docker Desktop → Settings → Docker Engine,把上面的 JSON 粘进去,点 Apply & Restart。
验证
docker info | grep -A 5 "Registry Mirrors"
# 应该看到你配的地址
三、1ms.run(公益备用)
无需注册,直接配:
{
"registry-mirrors": ["https://docker.1ms.run"]
}
对应 docker hub 路径无需改写,daemon.json 配好后:
docker pull nginx:latest # 自动从 1ms.run 拉
如果要拉特定镜像也能直接走:
docker pull docker.1ms.run/library/nginx:latest
四、Containerd(K8s 节点)配置
K8s 节点上 docker 早被 containerd 取代,配置点不同:
/etc/containerd/config.toml:
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
然后 /etc/containerd/certs.d/docker.io/hosts.toml:
server = "https://docker.io"
[host."https://xxxxxxxx.mirror.aliyuncs.com"]
capabilities = ["pull", "resolve"]
[host."https://docker.1ms.run"]
capabilities = ["pull", "resolve"]
重启:
sudo systemctl restart containerd
五、Podman 配置
Podman 用 /etc/containers/registries.conf:
[[registry]]
location = "docker.io"
[[registry.mirror]]
location = "xxxxxxxx.mirror.aliyuncs.com"
[[registry.mirror]]
location = "docker.1ms.run"
六、kubeadm / kind / minikube
kubeadm
拉 control-plane 镜像走阿里云专门的 K8s 仓库:
kubeadm init --image-repository registry.aliyuncs.com/google_containers
kind
创建集群时指定 containerdConfigPatches:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://xxxxxxxx.mirror.aliyuncs.com"]
minikube
minikube start --registry-mirror=https://xxxxxxxx.mirror.aliyuncs.com
七、特殊镜像源
Google Container Registry(gcr.io)
镜像规则:把 gcr.io 换成 gcr.lank8s.cn 或 gcr.dockerproxy.com。例如:
docker pull gcr.io/google-containers/pause:3.9
# 改成
docker pull gcr.lank8s.cn/google-containers/pause:3.9
quay.io
docker pull quay.dockerproxy.com/org/image:tag
ghcr.io(GitHub Container Registry)
docker pull ghcr.dockerproxy.com/owner/image:tag
八、企业内网方案:自建 Harbor / Nexus
完全断网环境:
- Harbor(企业级,推荐,VMware 开源):支持镜像复制 / 漏洞扫描 / 权限管理
- Nexus:支持多种制品(npm / docker / maven 一站式)
- 简单方案:用 docker registry 镜像 + nginx 反代
九、常见问题排查
| 错误 | 原因 | 解决 |
|---|---|---|
| toomanyrequests | Docker Hub 匿名拉满额(100/6h) | 配镜像或 docker login |
| unauthorized | 拉私有镜像需 login | docker login |
| net/http: TLS handshake timeout | 网络层 | 换镜像或挂代理 |
| no such host | DNS 污染 | 改 /etc/resolv.conf 或换 1.1.1.1 |
| manifest unknown | 镜像不存在 / tag 错 | docker search 验证 |
十、长期方案:走稳定代理
公益镜像 2024 大批关停证明:镜像源不可控。重度依赖 docker 拉镜像的团队(CI / 多 K8s 节点 / 频繁部署),更稳的做法是接一条配套订阅线路,把 docker.io / registry-1.docker.io / production.cloudflare.docker.com 列为代理走,直接对接官方 + 速度跑满。
来源与时间戳
最后核对时间:2026-05-20。公益镜像 2024 后变化频繁,以官方公告为准。