要为 Docker 连接设置代理,您可以根据不同场景选择以下方法:
适用于需要代理访问外部资源(如拉取镜像)的情况:
创建或编辑配置文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
添加以下内容(根据您的代理设置修改):
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
重新加载并重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
编辑或创建 /etc/docker/daemon.json
文件:
{
"proxies": {
"default": {
"httpProxy": "http://proxy.example.com:8080",
"httpsProxy": "http://proxy.example.com:8080",
"noProxy": "localhost,127.0.0.1,.example.com"
}
}
}
然后重启 Docker 服务。
在运行容器时添加代理环境变量:
docker run -e HTTP_PROXY=http://proxy.example.com:8080 \
-e HTTPS_PROXY=http://proxy.example.com:8080 \
-e NO_PROXY=localhost,127.0.0.1 \
your_image
在 Dockerfile 中添加:
ENV HTTP_PROXY=http://proxy.example.com:8080
ENV HTTPS_PROXY=http://proxy.example.com:8080
ENV NO_PROXY=localhost,127.0.0.1
如果您只是需要代理来使用 Docker CLI 命令:
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1
检查代理是否生效:
docker info | grep -i proxy
http://
前缀NO_PROXY
设置可以排除不需要代理的地址http://username:password@proxy.example.com:8080
希望这些方法能帮助您成功为 Docker 设置代理连接。