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_PROXY
curl
、pip
、apt
、docker build
等)在访问 HTTP / HTTPS 网络时要通过指定的代理地址转发请求。格式:
http://ip:port
例如:http://127.0.0.1:1087
http://username:password@proxy.example.com:8080
socks5://
,但支持情况有限)export HTTP_PROXY=http://127.0.0.1:1087
export HTTPS_PROXY=http://127.0.0.1:1087
NO_PROXY
export 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.json
mkdir -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=... |
✅ 临时使用 |