解决方案
1、在
/etc/systemd/system/docker.service.d/http-proxy.conf
配置文件中添加代理信息 2、重启docker服务
具体操作如下:
- 创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置
代码语言:javascript
复制
$ sudo mkdir -p /etc/systemd/system/docker.service.d
- 新建配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf 内容如下:
代码语言:javascript
复制
[Service]
Environment="HTTP_PROXY=http://*****.com:80"
Environment="HTTPS_PROXY=https://*****.com:443"
tips: 如果文件已经存在,可直接修改文件内容,添加相关代理设置
如果有不需要代理的地址,可添加 NO_PROXY 配置:
代码语言:javascript
复制
[Service]
Environment="HTTP_PROXY=http://*****.com:80"
Environment="HTTPS_PROXY=https://*****.com:443"
Environment="NO_PROXY=your-registry.com,*.*.*.*,*.example.com"
多个 NO_PROXY 变量的值用逗号分隔,而且可以使用通配符(),极端情况下,如果 NO_PROXY=,那么所有请求都将不通过代理服务器
- 重新加载配置文件,重启 dockerd 服务
代码语言:javascript
复制
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
- docker info 查看配置结果
结论:
docker 镜像由 docker daemon 管理,所以不能用修改 shell 环境变量的方法使用代理服务,而是从 systemd 角度设置环境变量