PROXY_URL="http://127.0.0.1:1087"
export HTTP_PROXY=${PROXY_URL}
export HTTPS_PROXY=${PROXY_URL}
export NO_PROXY="localhost,127.0.0.1,docker.yourcompany.com"
curl、docker build 等命令时;HTTP_PROXY / HTTPS_PROXYcurl、pip、apt、docker build 等)在访问 HTTP / HTTPS 网络时要通过指定的代理地址转发请求。格式:
http://ip:port 例如:http://127.0.0.1:1087http://username:password@proxy.example.com:8080socks5://,但支持情况有限)export HTTP_PROXY=http://127.0.0.1:1087
export HTTPS_PROXY=http://127.0.0.1:1087
NO_PROXYexport NO_PROXY="localhost,127.0.0.1,dockerhub.mycompany.com,.internal"
上面的意思是:
localhost 和 127.0.0.1(本地回环地址)不会经过代理;dockerhub.mycompany.com 是公司内网的镜像源,也不走代理;.internal 代表所有结尾是 .internal 的域名(例如 svc.internal)都不走代理。重点提示:
如果你不设NO_PROXY,本地访问也会尝试走代理,容易导致访问失败或非常慢。
~/.bashrc 或 ~/.zshrc(取决于你用哪个 Shell):# ~/.bashrc 或 ~/.zshrc
PROXY_URL="http://127.0.0.1:1087"
export HTTP_PROXY=${PROXY_URL}
export HTTPS_PROXY=${PROXY_URL}
export NO_PROXY="localhost,127.0.0.1,dockerhub.yourcompany.com"
保存后执行:
source ~/.bashrc # 或 source ~/.zshrc
适用于
docker pull、docker-compose up拉镜像等行为
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://127.0.0.1:1087"
Environment="HTTPS_PROXY=http://127.0.0.1:1087"
Environment="NO_PROXY=localhost,127.0.0.1,dockerhub.yourcompany.com"
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl show --property=Environment docker
~/.docker/config.jsonmkdir -p ~/.docker
nano ~/.docker/config.json
内容如下:
{
"proxies": {
"default": {
"httpProxy": "http://127.0.0.1:1087",
"httpsProxy": "http://127.0.0.1:1087",
"noProxy": "localhost,127.0.0.1,dockerhub.yourcompany.com"
}
}
}
作用:会让 docker build 构建过程自动使用代理。
FROM ubuntu:22.04
ENV HTTP_PROXY=http://127.0.0.1:1087
ENV HTTPS_PROXY=http://127.0.0.1:1087
ENV NO_PROXY=localhost,127.0.0.1
docker run \
-e HTTP_PROXY=http://127.0.0.1:1087 \
-e HTTPS_PROXY=http://127.0.0.1:1087 \
-e NO_PROXY=localhost,127.0.0.1 \
ubuntu:22.04 curl http://google.com
| 场景 | 配置方法 | 是否推荐 |
|---|---|---|
| 临时测试代理 | export HTTP_PROXY=... |
✅ 开发调试 |
| 永久生效(命令行工具) | .bashrc / .zshrc |
✅ 推荐 |
| Docker 构建镜像时走代理 | ~/.docker/config.json |
✅ 推荐 |
| Docker 拉取镜像走代理(daemon) | /etc/systemd/system/docker.service.d/*.conf |
✅ 必须 |
| Dockerfile 设置代理 | ENV HTTP_PROXY=... |
✅ 如需构建 |
| 运行容器时传入代理 | docker run -e HTTP_PROXY=... |
✅ 临时使用 |