背景: node1不能訪問外網, node2能夠訪問外網,node1經過node2的代理服務來訪問外網。node
1. node1不能訪問外網docker
vim /etc/resolv.conf
註釋掉DNS配置文件vim
2. node2搭建代理服務器, 這裏是在centos7.2上用Squid搭建HTTP代理服務器 [若是已經有其餘代理服務器,能夠忽略這步]centos
2.1 安裝bash
yum install -y squid yum install -y httpd-tools
2.2 生成密碼文件服務器
mkdir /etc/squid/ # pill 是用戶名 htpasswd -cd /etc/squid/passwords pill # 提示輸入密碼,在此pill設密碼爲 pill # 注意密碼不要超過8位
2.3 測試密碼文件測試
/usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords # 輸入 用戶名 密碼 pill pill # 提示OK說明成功,ERR是有問題,請檢查一下以前步驟 OK # 測試完成,crtl + c 打斷
2.4 配置Squidui
vim /etc/squid/squid.conf # 在最後添加 auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords auth_param basic realm proxy acl authenticated proxy_auth REQUIRED http_access allow authenticated # 這裏是端口號,能夠按需修改 http_port 3128
2.5 啓動Squidcentos7
systemctl restart squid.service
3. 爲docker設置代理代理
3.1 建立目錄
mkdir -p /etc/systemd/system/docker.service.d
3.2 建立文件/etc/systemd/system/docker.service.d/http-proxy.conf,內容以下:
[Service] Environment="HTTP_PROXY=http://pill:pill@node2:3128/"
3.3 重啓docker
systemctl daemon-reload systemctl restart docker
3.4 驗證docker代理是否設置成功
systemctl show --property=Environment docker
顯示以下結果說明設置成功
Environment=GOTRACEBACK=crash HTTP_PROXY=http://pill:pill@node2:3128/