给 Docker daemon 配 SOCKS5 代理

给 Docker daemon 配 SOCKS5 代理(推荐用 socks5h) 执行下面这套(把四行Environment的IP 换成你的,前3个是指定IP+端口,最后一个是指定IP段):

sudo mkdir -p /etc/systemd/system/docker.service.d

sudo tee /etc/systemd/system/docker.service.d/proxy.conf >/dev/null <<'EOF'
[Service]
Environment="HTTP_PROXY=socks5h://192.168.55.xx:334433"
Environment="HTTPS_PROXY=socks5h://192.168.55.xx:334433"
Environment="ALL_PROXY=socks5h://192.168.55.xx:334433"
Environment="NO_PROXY=localhost,127.0.0.1,::1,192.168.0.0/16,192.168.55.0/24"
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

检查是否生效:

sudo systemctl show --property=Environment docker


额外排查(确认代理本身可用) 先用 curl 走 socks5 测一下网络是否通,如果这里都不通,那是代理服务或路由问题,不是 Docker 配置问题。

curl -I --proxy socks5h://192.168.55.xx:334433 https://ghcr.io/v2/

以上是通过给 systemd 的 Docker 服务加了一个“覆盖配置”。想改回去(取消代理)很简单,删掉这个覆盖文件,然后重载并重启 Docker。

sudo rm -f /etc/systemd/system/docker.service.d/proxy.conf
sudo systemctl daemon-reload
sudo systemctl restart docker

验证是否已清掉:

sudo systemctl show --property=Environment docker
Language
中文(简体) 中文(繁體) 日本語 한국어 русский English français Deutsch español italiano বাংলা (ভারত) العربية ไทย Tiếng Việt Bahasa Melayu Filipino ελληνικά magyar dansk norsk íslenska Gaeilge