2017-08-11 41 views
0

我試圖從默認的註冊表下載一個容器圖像用命令:如何從默認碼頭註冊表下載圖片?

docker run -d --name=nginx -p 80:80 nginx:alpine 

輸出是:

無法找到像「nginx的:高山」本地 泊塢窗:從後臺程序錯誤響應:獲取https://registry-1.docker.io/v2/:x509:由未知權威機構簽署的證書。 請參閱「碼頭運行 - 幫助」。

我已經用cntlm配置了代理。我背後的企業防火牆與深入檢查包(DIP,男子在中間)

我可以定義默認註冊表(https://registry-1.docker.io/v2/)像一個不安全的註冊表嗎?怎麼樣?還有另一種解決方案? 我已經嘗試了以下選項:

--insecure-registry=registry-1.docker.io:5000 
--insecure-registry=registry-1.docker.io 
--insecure-registry='*' 
--insecure-registry=https://registry-1.docker.io/v2/ 
+0

您是否執行了此處記錄的所有代理步驟:https://docs.docker.com/engine/admin/systemd/? – yamenk

+0

是的,我已經做了這些步驟。我的/etc/systemd/system/docker.service.d/http-proxy.conf的內容是: [Service] Environment =「HTTP_PROXY = http:// localhost:3128 /」「NO_PROXY = localhost,127.0。 0.1「 此配置部分起作用,顯然doker可以訪問註冊表,但由於企業防火牆,它無法驗證註冊表中籤名的內容。 –

+0

如果您運行docker info,它是否顯示不安全列表中的註冊表服務器? – BMitch

回答

1

問題已解決。

我的SO是薄荷(基於Ubuntu的xenial)和泊塢窗版本17.06.0策

要解決,我需要做把從我公司的防火牆的根證書到我的Linux CA證書(參考1 - https://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate )。 Obs .:已經使用cntlm配置的代理(參考2 - http://cntlm.sourceforge.net/)(參考3 - https://docs.docker.com/engine/admin/systemd/

首先我導出安裝在我的瀏覽器中的證書,google chrome。從鉻a選擇配置 - >高級 - >隱私和安全 - >管理證書 - >受信任的根證書頒發機構,所以我選擇了權限,在我的情況下,像mycompany.com。之後,我選擇export-> advance,選擇X.509 base64格式(* .cer)。正確的格式非常重要。我保存了〜/ certificate.crt文件。 創建一個額外的目錄:

sudo mkdir /usr/share/ca-certificates/extra 

複製證書額外的目錄:

sudo cp ~/certificate.crt /usr/share/ca-certificates/extra 

更新CA證書配置:

sudo dpkg-reconfigure ca-certificates 

重啓泊塢窗:

sudo systemctl daemon-reload 

sudo systemctl restart docker 

現在停靠呃可以從默認註冊表下載圖片。

+0

文件certificate.cer必須是certificate.crt才能執行dpkg-reconfigure命令 –