配置 HTTP/HTTPS 网络代理 (Docker 高级网络配置)
在使用 Docker 的过程中,如果遇到网络限制,通常需要通过配置 HTTP/HTTPS 代理来加速镜像拉取、构建和容器内的访问。配置主要分为以下三种场景:
1. 为 dockerd (Docker 守护进程) 设置网络代理
此配置适用于 docker pull 等由 dockerd 守护进程执行的命令。由于 dockerd 通常由 systemd 管理,因此需要通过 systemd 配置。
步骤:
创建
dockerd的配置文件夹:sudo mkdir -p /etc/systemd/system/docker.service.d创建 HTTP/HTTPS 网络代理的配置文件
/etc/systemd/system/docker.service.d/http-proxy.conf,并添加相关环境变量。[Service] Environment="HTTP_PROXY=[http://proxy.example.com:8080/](http://proxy.example.com:8080/)" Environment="HTTPS_PROXY=[http://proxy.example.com:8080/](http://proxy.example.com:8080/)" Environment="NO_PROXY=localhost,127.0.0.1,.example.com"刷新
systemd配置并重启 Docker 服务:sudo systemctl daemon-reload sudo systemctl restart docker
2. 为 Docker 容器设置网络代理
此配置适用于容器运行阶段,使容器内部的应用可以通过代理访问外部网络。可以通过两种方式实现:
方式一:更改 Docker 客户端配置 (全局设置)
创建或更改 ~/.docker/config.json 文件,并添加 proxies 配置:
{
"proxies": {
"default": {
"httpProxy": "[http://proxy.example.com:8080/](http://proxy.example.com:8080/)",
"httpsProxy": "[http://proxy.example.com:8080/](http://proxy.example.com:8080/)",
"noProxy": "localhost,127.0.0.1,.example.com"
}
}
}
评论区