第 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 SIZE3 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 方案使映象的版本很直觀,在選擇非常靈活:
- myimage:1 始終指向 1 這個分支中最新的映象。
- myimage:1.9 始終指向 1.9.x 中最新的映象。
- myimage:latest 始終指向所有版本中最新的映象。
- 如果想使用特定版本,可以選擇 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