docker拉镜像失败终极解决方案
✅ 1️⃣ 配置服务器需要走socks5代理
1. 配置 Docker 服务代理(推荐)
创建目录(如果不存在):
sudo mkdir -p /etc/systemd/system/docker.service.d
创建或编辑代理配置文件:
sudo nano /etc/systemd/system/docker.service.d/proxy.conf
写入(假设你的 SOCKS5 代理是 127.0.0.1:1080):
[Service]
Environment="HTTP_PROXY=socks5h://127.0.0.1:1080"
Environment="HTTPS_PROXY=socks5h://127.0.0.1:1080"
Environment="NO_PROXY=localhost,127.0.0.1"
注意
socks5h://
可以让 DNS 请求也通过代理,防止解析失败。
重载 systemd 并重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
✅ 2️⃣ 临时使用环境变量(快速测试)
在命令前加代理环境变量:
export HTTP_PROXY=socks5h://127.0.0.1:1080
export HTTPS_PROXY=socks5h://127.0.0.1:1080sudo docker pull lvxj11/erpnext:latest
✅ 3️⃣ 其他常见原因
-
本地 DNS 解析失败 →
socks5h
可以解决 -
防火墙 / NAT 屏蔽 → 确认能 ping registry-1.docker.io
-
Docker 版本太老 → 升级到最新稳定版
-
网络慢 → 增加超时时间(不常用)
✅ 4️⃣ 验证代理是否生效
sudo docker info | grep -i proxy
输出类似:
HTTP Proxy: socks5h://127.0.0.1:1080
HTTPS Proxy: socks5h://127.0.0.1:1080
表示配置生效。