Administrator
发布于 2026-02-11 / 2 阅读
0
0

如何为Docker配置代理?

要让 Docker 容器或 Docker 守护进程通过 SOCKS5 代理连接,通常有两种场景:让容器内的程序走代理,或者让 Docker Pull(拉取镜像)走代理

假设你的代理地址是 192.168.1.138:10808,请参考以下配置方法:


1. 容器运行环境配置 (让容器内应用上网)

如果你希望在运行 docker run 时,容器内的程序(如 curlapt)能通过代理访问外部网络,最简单的方法是设置环境变量。

命令行临时指定:

docker run -it \
  -e all_proxy=socks5://192.168.1.138:10808 \
  -e http_proxy=socks5://192.168.1.138:10808 \
  -e https_proxy=socks5://192.168.1.138:10808 \
  alpine sh

永久配置 (当前用户): 修改 ~/.docker/config.json,这样每次执行 docker run 都会自动注入这些变量:

{
 "proxies": {
   "default": {
     "httpProxy": "socks5://192.168.1.138:10808",
     "httpsProxy": "socks5://192.168.1.138:10808",
     "noProxy": "localhost,127.0.0.1"
   }
 }
}

2. Docker 守护进程配置 (解决 Docker Pull 慢)

如果你是为了解决 docker pull 镜像时无法连接的问题,需要修改 Docker 服务的 systemd 配置。

创建配置目录:

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

创建配置文件: 新建文件 /etc/systemd/system/docker.service.d/http-proxy.conf,写入以下内容:

[Service]
Environment="HTTP_PROXY=socks5://192.168.1.138:10808"
Environment="HTTPS_PROXY=socks5://192.168.1.138:10808"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.1.0/24"

重载并重启 Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker


评论