簡體   English   中英

Docker構建標記存儲庫名稱

[英]Docker build tag repository name

可以通過docker build命令輕松構建docker鏡像。

我想知道的是你在構建圖像時可以給出的標志。 例如:

$ docker build -t ouruser/sinatra:v2 .

根據文檔,t標志用於標記和命名目的。 名稱是':'之前的部分,標記是之后的部分。 所以在我們的例子中,名稱是ouruser / sinatra,標簽是v2。

我以為這將是圖像名稱和標簽。 但顯然,該名稱實際上是一些存儲庫名稱? 為什么我認為它是? 好吧,因為如果你在這個列表之后用命令列出圖像:

docker images

你會得到這樣的列表:

REPOSITORY          TAG     IMAGE ID      CREATED        SIZE
ouruser/sinatra     latest  5db5f8471261  11 hours ago   446.7 M

砰! 重大震撼! 您以為您正在創建一個帶有名稱的圖像,而是指定了一些存儲庫! 與此相關,我有一些問題:

  1. 這個存儲庫在哪里?
  2. 我可以在不創建存儲庫的情況下命名圖像嗎?
  3. 該存儲庫在何處以及如何使用或可以使用?
  4. 我在哪里可以找到有關此存儲庫的更多信息? 我只發現了這一點,而且說實話並不多: docker build docs
  5. 為什么使用包含兩個部分的名稱是常見的:somename / someothername?

謝謝您的幫助!

我認為這里的混淆是“存儲庫”這個詞。 在Docker中,存儲庫是具有相同名稱的圖像的任何構建組,並且可能是多個標記。 “registry”服務器(如hub.docker.com或您自己的私有注冊表)擁有多個存儲庫,例如公共注冊表上的redis存儲庫 該存儲庫具有用於構建的不同版本的多個標記。

所以在這樣的背景下,回答你的問題:

  1. ouruser / sinatra位於您當地的Docker主機上,直到您執行docker push
  2. 不,存儲庫和標記是圖像的名稱。
  3. 在系統本地時,您可以在本地使用此圖像。 將其推送到注冊表后,您可以將其下載到可以訪問該注冊表的任何其他Docker主機。 如果您執行docker save ,則可以將該圖像保存為另一台主機上的docker load
  4. 我確信在docs.docker.com上有文檔覆蓋這個,但我從課堂上學到了。
  5. username / imagebase格式即將支持在hub.docker.com中推送到您自己的命名空間。 如果沒有這個,那么制作第一個“Redis”圖像的人稱之為“redis”,而下一個人創建自己的名為“redis-improved”的存儲庫,我們很快就會混淆一些令人困惑的名字,其中不清楚是誰創造了什么是一個有信譽的形象。 您在本地制作的圖像不需要該命名,但仍然鼓勵使用,因為從hub.docker.com提取的圖像可能缺少用戶名,如果它們由Docker自己維護的話。 如果沒有您的用戶名,您將無法知道自己下載的圖像以及自己構建的圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM