214 字
1 分钟

Docker配置代理(pull/run/build)

配置pull镜像时使用的代理#

docker pulldockerd进程发起,而dockerd进程是一个后台进程,不会读取当前用户的环境变量,所以我们需要在/etc/systemd/system/docker.service.d/http-proxy.conf中配置代理。

Terminal window
mkdir -p /etc/systemd/system/docker.service.d
cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890/" # 改成你自己的代理地址
Environment="HTTPS_PROXY=http://127.0.0.1:7890/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
EOF
systemctl daemon-reload
systemctl restart docker

配置容器运行时使用的代理#

容器运行时使用的代理配置在~/.docker/config.json中,如果没有该文件,可以手动创建。

Terminal window
mkdir -p ~/.docker
cat <<EOF > ~/.docker/config.json
{
"proxies":
{
"default":
{
"httpProxy": "http://127.0.0.1:7890/", # 改成你自己的代理地址
"httpsProxy": "http://127.0.0.1:7890/",
"noProxy": "localhost,127.0.0.0/8,.example.com,172.128.2.0/24" # 如果你的容器之间使用了内网通信,例如172.x.x.x/24,也需要加入到noProxy中
}
}
}
EOF

配置构建镜像时使用的代理#

在Dockerfile中配置代理

FROM debian:latest
ENV http_proxy http://192.168.8.110:7890
ENV https_proxy http://192.168.8.110:7890
... # 其他配置
Docker配置代理(pull/run/build)
https://nyanners.moe/docker-proxy
作者
Zero
发布于
2024-04-02
许可协议
CC BY-NC-SA 4.0