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 代理工具
- 代理 - 网络代理配置