Docker Hub 国内镜像源完全指南 2026

docker pull 卡 1 KB/s、unauthorized: incorrect username or password 是国内 2024-06 后的新常态 — Docker Hub 收紧 IP 限流 + 多个公益镜像(中科大、网易、DaoCloud)关停。本文给 2026 实测可用配置。

一、2026 仍可用镜像源

镜像地址格式注册要求稳定性
阿里云 ACRhttps://.mirror.aliyuncs.com阿里云账号(免费)★★★★★
腾讯云https://mirror.ccs.tencentyun.com腾讯云 CVM 内网免费★★★★
华为云https://.mirror.swr.myhuaweicloud.com华为云账号★★★★
1ms.runhttps://docker.1ms.run★★★(公益,流量大时不稳)
DockerProxyhttps://dockerproxy.com★★(已变 readonly)
清华源 docker(测试)https://docker.mirrors.ustc.edu.cn★(部分已停)

二、阿里云 ACR(推荐主用)

开通步骤

  1. 登录 https://cr.console.aliyun.com,选「个人实例」→ 镜像加速器
  2. 选地域(华东 1 杭州、华北 2 北京 等,选离你最近)
  3. 复制专属加速地址,形如 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 反代

九、常见问题排查

错误原因解决
toomanyrequestsDocker Hub 匿名拉满额(100/6h)配镜像或 docker login
unauthorized拉私有镜像需 logindocker login
net/http: TLS handshake timeout网络层换镜像或挂代理
no such hostDNS 污染改 /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 后变化频繁,以官方公告为准。