環境:
centos7已配置代理全局模式,使用的配置文件是/etc/profile
但是docker容器中無法使用外部配置
爲何呢:
由於外部環境使用的是/user/local/share/gtfxxxxxxx/config.json
詳見博客:https://blog.csdn.net/Beyond_F4/article/details/106575338
而Docker守護程序在其啓動環境中使用HTTP_PROXY,HTTPS_PROXY和NO_PROXY環境變量來配置HTTP或HTTPS代理行爲。 所以不能使用config.json文件配置這些環境變量。
解決辦法:
分三步
1、爲服務器docker創建system目錄
2、創建配置文件
3、使之生效
具體如下:
1、創建如下目錄
# 創建系統目錄
mkdir -p /etc/systemd/system/docker.service.d
2、根據個人需求的代理模式情況分別創建對應的文件
如果使用的是http代理
vi /etc/systemd/system/docker.service.d/http-proxy.conf
並在配置文件中加入http環境變量
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
如果使用的是https代理
vi /etc/systemd/system/docker.service.d/https-proxy.conf
並在配置文件中加入https環境變量
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"
如果不需要通過代理訪問,則在上面配置中增加NO_PROXY環境變量
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,*.a.com"
或者
[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/" "NO_PROXY=localhost,*.a.com"
3、使之生效
systemctl daemon-reload
4、重啓服務
systemctl restart docker