當前位置:
首頁 > 知識 > docker-設置HTTP/HTTPS 代理

docker-設置HTTP/HTTPS 代理


背景

將docker的伺服器環境切換到新的網路之後,由於伺服器的internet是受限制的(需要連接配置遠程代理,不能直接上網)。因此,在使用docker連接docker hub 的時候,就會出錯:

錯誤細節如下:

[root@CNCGTCFS76 system]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don"t have a Docker ID, head over to https://hub.docker.com to create one.
Username: xxx
Password: xxx
Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: dial tcp :443: getsockopt: connection refused

在網上搜索過一番之後,發現: 如果在docker 宿主機上設置了代理(HTTP、HTTPS)之後,在docker daemon 啟動的時候,也要相應的告知 daemon,使用代理來訪問internet!!

解決方案

如上,就是在docker daemon 啟動的時候告知她,我們要是有HTTP或者HTTPS代理!!

儘管docker daemon 的配置可以兩種方式來實現:

一. 通過daemon.json 文件來修改

二. 通過覆蓋docker.servicefile來實現

但是對於代理的配置,目前為止(docker 17.06)我們只能使用第二個方案。 具體的步驟如下。。。

1. 創建 docker.service.d 目錄

$ mkdir -p /etc/systemd/system/docker.service.d

2. 創建HTTP 或者HTTPS 代理文件

HTTP:

vim /etc/systemd/system/docker.service.d/http-proxy.conf

HTTPS:

vim /etc/systemd/system/docker.service.d/https-proxy.conf

由於我這裡用的是 「HTTPS」,所以只給大家演示HTTPS代理的配置,對於HTTP代理的修改,非常相似,大家可以參考我最後貼出來的連接。

3. 修改 https-proxy.conf 文件

[Service]
Environment="HTTPS_PROXY=xxx.xxx.xxx.xxx:443" "NO_PROXY=localhost,127.0.0.1,xxx.xxxxxx:5000"

解析:

主要是兩點內容:

HTTPS_PROXY將它的值對應到您所希望設置的代理服務地址和埠(例如:HTTPS_PROXY=https://proxy.example.com:443),我這裡為了保護隱私,就用xxx代替.

NO_PROXY意味著某些情況下我們不需要使用HTTPS代理來訪問,一般這就配置私有倉庫的路徑(例如:NO_PROXY=localhost,127.0.0.1,mydocker-registry.com:5000

4. 完成修改後保存/刷新

###Flush changes:
#systemctl daemon-reload

###Restart Docker:
#systemctl restart docker

5. 查看修改結果

#systemctl show --property=Environment docker

Environment=HTTPS_PROXY=xxx.xxx.xxx.xxx:443 NO_PROXY=localhost,127.0.0.1,mydocker-registry.com:5000

6. 重新登陸 docker hub

docker login -u xxx -p xxx
Login Succeeded

我們可以看到,docker hub 已經可以訪問嘍!!

感謝大家的收看,歡迎大家留言交流與頂貼 :)

參考文獻

https://docs.docker.com/engine/admin/systemd/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

ASP.NET Core 源碼學習之 Logging「2」:Configure
git push解決辦法:!「remote rejected」master-> master
如何恢復未釋放租約的HDFS文件
C中調用HttpWebRequest類中Get/Post請求無故失效的詭異問題
Android面試題目之四: 歸併排序

TAG:科技優家 |

您可能感興趣

Docker搭建L2TP-VPN伺服器
Docker 安裝 PHP
Docker環境下搭建DNS LVS(keepAlived) OpenResty伺服器簡易集群
iHealth基於Docker的DevOps CI/CD實踐
CentOS Docker 安裝
MacOS Docker 安裝
IBM與Docker擴大合作,多款產品登Docker Hub
微軟發布 Visual Studio Kubernetes、Docker EE 升級、AKS 已達到 GA 階段
MacOS Install Docker
在 Scale Up 中使用 Health Check-每天5分鐘玩轉 Docker 容器技術
UCloud 葉理燈談:Docker、K8S 和 Serverless
UCloud葉理燈談:Docker、K8S和Serverless
Docker Compose搭建MySQL主從複製集群
基於 Docker 搭建 MySQL 主從複製
Docker Harbor+Keepalived+LVS+共享存儲高可用架構
Docker公司或成微軟,Red Hat,VMware的收購目標
Docker 安裝 MongoDB
Docker 安裝 Tomcat
Docker 安裝 Python
Docker、TensorFlow目標檢測API和OpenCV實現目標檢測和視頻處理