Linux Docker 代理设置
手动操作
覆盖docker.service file来实现
1. 创建 docker.service.d 目录
mkdir -p /etc/systemd/system/docker.service.d2. 创建HTTP 或者HTTPS 代理文件
HTTP:
sudo nano /etc/systemd/system/docker.service.d/http-proxy.confHTTPS:
sudo nano /etc/systemd/system/docker.service.d/https-proxy.conf下面展示 http 的代理文件,https 同理(记得改代码内容)
3. 修改 http-proxy.conf 文件
[Service]
Environment="http_proxy=http://100.121.204.14:7890" "NO_PROXY=localhost,127.0.0.1"解析:
主要是两点内容:
HTTP_PROXY将它的值对应到您所希望设置的代理服务地址和端口(例如:HTTP_PROXY=https://proxy.example.com:443)NO_PROXY意味着某些情况下我们不需要使用 HTTP 代理来访问(例如:NO_PROXY=localhost,127.0.0.1,mydocker-registry.com:5000)
注意修改 https-proxy.conf 中 的 https_proxy
4. 完成修改后保存/刷新
#Flush changes:
sudo systemctl daemon-reload
#Restart Docker:
sudo systemctl restart docker5. 查看修改结果
sudo systemctl show --property=Environment docker
快速脚本
# === 一键 Docker 代理设置脚本 ===
# 修改代理地址即可(HTTP 与 HTTPS 同理)
HTTP_PROXY_ADDR="http://100.64.132.34:7890"
HTTPS_PROXY_ADDR="http://100.64.132.34:7890"
NO_PROXY_LIST="localhost,127.0.0.1,::1,docker-registry.local,100.0.0.0/8"
# 1️⃣ 创建 docker.service.d 目录
sudo mkdir -p /etc/systemd/system/docker.service.d
# 2️⃣ 创建 http-proxy.conf
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null <<EOF
[Service]
Environment="HTTP_PROXY=${HTTP_PROXY_ADDR}" "NO_PROXY=${NO_PROXY_LIST}"
EOF
# 3️⃣ 创建 https-proxy.conf(如不需要可注释掉)
sudo tee /etc/systemd/system/docker.service.d/https-proxy.conf > /dev/null <<EOF
[Service]
Environment="HTTPS_PROXY=${HTTPS_PROXY_ADDR}" "NO_PROXY=${NO_PROXY_LIST}"
EOF
# 4️⃣ 重新加载 systemd 并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# 5️⃣ 输出验证结果
echo "✅ Docker proxy settings applied. Current Environment:"
sudo systemctl show --property=Environment docker
echo "🎉 Done!"