1. 程式人生 > >第 3 章 映象 - 018 - 映象命名的最佳實踐

第 3 章 映象 - 018 - 映象命名的最佳實踐

為映象命名

建立映象時 docker build 命令時已經為映象取了個名字,例如: 

docker build -t ubuntu-with-vi

這裡的 ubuntu-with-vi 就是映象的名字。通過 dock images 可以檢視映象的資訊。

1 [email protected]:~# docker images ubuntu-with-vi
2 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
3 ubuntu-with-vi latest b5410dfa9a42 11 days ago 170MB 4 [email protected]:~#

 

這裡注意到 ubuntu-with-vi 對應的是 REPOSITORY,而且還有一個叫 latest 的 TAG

實際上一個特定映象的名字由兩部分組成:

  • repository
  • tag
[image name] = [repository]:[tag] 

如果執行 docker build 時沒有指定 tag,會使用預設值 latest。其效果相當於:

docker build -t ubuntu-with-vi:latest

tag 常用於描述映象的版本資訊,比如 httpd 映象:

當然 tag 可以是任意字串,比如 ubuntu 映象:

千萬別被 latest tag 給誤導了。latest 其實並沒有什麼特殊的含義。當沒指明映象 tag 時,Docker 會使用預設值 latest,僅此而已。雖然 Docker Hub 上很多 repository 將 latest 作為最新穩定版本的別名,但這只是一種約定,而不是強制規定。所以我們在使用映象時最好還是避免使用 latest,明確指定某個 tag,比如 httpd:2.3,ubuntu:xenial。

 

tag 使用最佳實踐

每個 repository 可以有多個 tag,而多個 tag 可能對應的是同一個映象。

假設現在釋出了一個映象 myimage,版本為 v1.9.1。那麼我們可以給映象打上四個 tag:1.9.1、1.9、1 和 latest。

我們可以通過 docker tag 命令方便地給映象打 tag。

1 docker tag myimage-v1.9.1 myimage:1
2 docker tag myimage-v1.9.1 myimage:1.9
3 docker tag myimage-v1.9.1 myimage:1.9.1
4 docker tag myimage-v1.9.1 myimage:latest

 

一段時間後釋出了 v1.9.2。這時可以打上 1.9.2 的 tag,並將 1.9、1 和 latest 從 v1.9.1 移到 v1.9.2。

1 docker tag myimage-v1.9.2 myimage:1
2 docker tag myimage-v1.9.2 myimage:1.9
3 docker tag myimage-v1.9.2 myimage:1.9.2
4 docker tag myimage-v1.9.2 myimage:latest 

之後,v2.0.0 釋出了。這時可以打上 2.0.0、2.0 和 2 的 tag,並將 latest 移到 v2.0.0。

1 docker tag myimage-v2.0.0 myimage:2
2 docker tag myimage-v2.0.0 myimage:2.0
3 docker tag myimage-v2.0.0 myimage:2.0.0
4 docker tag myimage-v2.0.0 myimage:latest

 

 

 這種 tag 方案使映象的版本很直觀,在選擇非常靈活:

  1. myimage:1 始終指向 1 這個分支中最新的映象。
  2. myimage:1.9 始終指向 1.9.x 中最新的映象。
  3. myimage:latest 始終指向所有版本中最新的映象。
  4. 如果想使用特定版本,可以選擇 myimage:1.9.1、myimage:1.9.2 或 myimage:2.0.0

 

 

----------------------引用來自-----------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587619&idx=1&sn=084d11955c8d4ca55eaf118e6784d689&chksm=8d3080baba4709ac8891081e6744ca50b4a02cf67c28348305d1a6b0e8ca582e29f3745c422d&scene=21#wechat_redirect