LoongLee's blog

Docker HTTP代理配置

Docker HTTP代理配置

来源

原始文档: docker 设置 http proxy.md

核心内容

配置 Docker 通过 HTTP 代理访问网络,适用于受限网络环境。

方案概述

使用 SSH 建立 SOCKS5 隧道,通过 Privoxy 转换为 HTTP 代理,供 Docker 使用。

配置步骤

1. 建立 SOCKS5 隧道

ssh -D 1080 user@hostname

2. 安装 Privoxy

sudo apt update
sudo apt install -y privoxy

3. 配置 Privoxy

编辑 /etc/privoxy/config:

listen-address  127.0.0.1:8118
forward-socks5t   /   127.0.0.1:1080 .

⚠️ 注意最后有个 .,这是必需的

4. 重启 Privoxy

sudo systemctl restart privoxy
sudo systemctl enable privoxy

5. 验证代理

curl -x http://127.0.0.1:8118 https://auth.docker.io/token

返回 JSON 或 401 说明代理正常。

6. 配置 Docker 代理

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

写入配置:

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8118"
Environment="HTTPS_PROXY=http://127.0.0.1:8118"
Environment="NO_PROXY=localhost,127.0.0.1"

7. 重启 Docker

sudo systemctl daemon-reload
sudo systemctl restart docker

查看 Docker 日志

sudo docker logs docker-name

关键要点

  • Privoxy 将 SOCKS5 代理转换为 HTTP 代理
  • Docker 需要通过 systemd 服务配置环境变量
  • NO_PROXY 设置避免代理内部网络请求
  • 适用于无法直接访问外部网络的环境

相关实体

  • Docker - 容器化平台
  • SSH - 安全外壳协议
  • Privoxy - HTTP 代理工具
  • 代理 - 网络代理配置