外观
Docker 拉取镜像慢?配置镜像加速器
docker pull 慢、卡在 Pulling fs layer、甚至 TLS handshake timeout,是因为默认从 Docker Hub(境外)拉取。解决分两种情况:Docker Hub 镜像用加速器,GHCR / 私有镜像走代理。
一、配置镜像加速器(针对 Docker Hub)
镜像加速器(registry mirror)会把 Docker Hub 的拉取请求代理到国内节点。
Linux:编辑 /etc/docker/daemon.json(没有就新建):
json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}重启 Docker:
bash
sudo systemctl daemon-reload
sudo systemctl restart dockerDocker Desktop(Windows / macOS):Settings → Docker Engine,在 JSON 里加入 registry-mirrors 字段,然后 Apply & Restart。
验证是否生效:
bash
docker info | grep -A5 "Registry Mirrors"加速器时效性
公共镜像加速器地址会变动或关停。如果配的地址失效,换一个当前可用的即可。企业可自建 registry mirror 最稳。
二、给 Docker 走代理(针对 GHCR / gcr / 私有镜像)
镜像加速器只对 Docker Hub 有效。拉 ghcr.io、gcr.io、quay.io 上的镜像,得让 Docker 守护进程走代理。
Linux(systemd):
bash
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<'EOF'
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
sudo systemctl daemon-reload
sudo systemctl restart dockerDocker Desktop:Settings → Resources → Proxies,手动填写 HTTP/HTTPS 代理地址。
注意:
docker pull由守护进程发起,所以代理要配在 daemon 上,而不是你 shell 的http_proxy环境变量。
三、单独给容器内进程走代理
上面是给"拉镜像"配代理。如果是容器里的程序要联网(比如 build 时 apt/pip),那是另一回事:
bash
# build 时传代理
docker build --build-arg HTTP_PROXY=http://127.0.0.1:7890 \
--build-arg HTTPS_PROXY=http://127.0.0.1:7890 -t myimg .Linux 上容器访问宿主机代理,127.0.0.1 要换成宿主机地址或用 host.docker.internal(Docker Desktop)。
四、换个 tag 前缀拉取(临时手段)
一些第三方提供 Docker Hub 的镜像代理,可在镜像名前加前缀临时拉取:
bash
docker pull <镜像代理域名>/library/nginx:latest
docker tag <镜像代理域名>/library/nginx:latest nginx:latest搜索"docker 镜像代理"获取当前可用地址。适合临时救急,长期还是配 daemon。
场景速查
| 拉取来源 | 用什么 |
|---|---|
| Docker Hub(默认) | 镜像加速器(方法一) |
| ghcr.io / gcr.io / quay.io | 守护进程走代理(方法二) |
| 容器内程序联网 | build-arg / 容器代理(方法三) |
| 临时救急 | 镜像代理前缀(方法四) |
小结
- 拉 Docker Hub 慢 → 配 registry-mirrors。
- 拉 GHCR/私有镜像慢 → 给 docker daemon 配代理(加速器无效)。
- 分清"拉镜像"和"容器内联网"是两套代理配置。
本文仅供技术学习与研究,请遵守所在国家/地区法律法规。