2016-09-27 77 views
4

在docker中,如何顯示當前登錄的當前註冊表信息?我安裝了docker,如果我現在執行docker push,它在哪裏發送我的圖像?Docker顯示當前註冊表

我花了30多分鐘從Google和docker文檔中搜索這些信息,並且無法找到它,所以我認爲它應該有自己的問題。

回答

6

沒有「當前」註冊表的概念 - 完整圖像標籤始終包含註冊表地址,但如果未指定註冊表,則將Docker Hub用作默認設置。因此docker push user/app推到碼頭集線器。如果你想將它推到你需要與註冊地址明確地標記它的本地註冊表:

docker tag user/app localhost:5000/user/app 
docker push localhost:5000/user/app 

如果你的本地註冊表被固定,你需要運行docker login localhost:5000不改變默認的註冊表。如果您在標籤中推送或拉出沒有註冊表地址的圖像,Docker將始終使用Hub。

This issue解釋理由。

+0

感覺很不錯的答案。我可以以同樣的方式拉出圖像嗎?如果我想使用私人註冊表(本地或外部),我需要先登錄,然後確保圖像標籤包含私人註冊表地址,然後推送它? –

+1

是的,確切地說。假設你想要你自己的Ubuntu基礎鏡像:'docker pull ubuntu'可以獲得Hub的官方映像; 'docker標籤ubuntu localhost:5000/bases/ubuntu'標籤爲本地註冊表; 'docker push localhost:5000/bases/ubuntu'在本地推送它。然後你調用'docker pull localhost:5000/bases/ubuntu',或者在Dockerfiles中使用它:'FROM localhost:5000/bases/ubuntu' –

2

碼頭圖像的工作方式並不是最明顯的,但很容易解釋。

您的圖像將被髮送到的位置必須在圖像名稱中定義。 當你提交一個圖像,你必須命名它[註冊表IP]:[註冊表端口]/[圖像路徑]/[圖像名稱]

如果您已經創建了圖像,並且想要將圖像發送給本地註冊表你必須標記它包括註冊表路徑,然後將其推:

搬運工標籤[圖片名稱] [註冊表-IP]:[註冊表端口]/[圖片名稱]

搬運工推[註冊表IP]:[註冊表端口]/[圖像名稱]