Docker 配置网络代理
Docker 守护进程代理配置
由于 docker pull
是由守护进程来执行,因此需要将代理配置在 docker 的运行环境中,即配置 systemd 环境变量。
添加配置文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf
proxy.conf
文件内容:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:1080"
Environment="HTTPS_PROXY=http://127.0.0.1:1080"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
检查是否在 systemd 配置成功:
sudo systemctl show --property=Environment docker
如果是以 service docker start
命令启动,则配置文件为 /etc/init.d/docker
,在文件开头添加以下两行:
export HTTP_PROXY=http://127.0.0.1:1080
export HTTPS_PROXY=http://127.0.0.1:1080
配置完成之后重启 docker,通过命令 docker info
查看:
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http://127.0.0.1:1080
HTTPS Proxy: http://127.0.0.1:1080
Docker Build 代理配置
docker build
构建过程中也可以单独配置代理,通过 --build-arg
参数实现:
docker build . \
--build-arg "HTTP_PROXY=http://127.0.0.1:1080" \
--build-arg "HTTPS_PROXY=http://127.0.0.1:1080" \
--build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \
-t test-image:latest