第 3 章 鏡像 - 018 - 鏡像命名的最佳實踐

為鏡像命名

創建鏡像時?docker build?命令時已經為鏡像取了個名字,例如:?

docker build -t ubuntu-with-vi

這里的?ubuntu-with-vi?就是鏡像的名字。通過 dock images 可以查看鏡像的信息。

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

?

這里注意到?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

轉載于:https://www.cnblogs.com/gsophy/p/10238455.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449729.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449729.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449729.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jmeter邏輯控制器-ForEach Controller

ForEach Controller 介紹 ForEach Contoller 即循環控制器,顧名思義是定義一個規則。主要有以下一個參數:名稱:隨便填寫注釋:隨便填寫輸入變量前綴:可以在“用戶自定義變量”中定義一組變量。循環控制器可以從中獲取到…

微服務實戰(三):深入微服務架構的進程間通信

見:http://www.dockone.io/article/549簡介 在單體式應用中,各個模塊之間的調用是通過編程語言級別的方法或者函數來實現的。但是一個基于微服務的分布式應用是運行在多臺機器上的。一般來說,每個服務實例都是一個進程。因此,如下…

python輸出與刪除某行或某列

python輸出字符,主要為結合變量形成新的變量名 year 2016 event Referendum fResults of the {year} {event}Results of the 2016 Referendum yes_votes 42_572_654 no_votes 43_132_495 percentage yes_votes / (yes_votes no_votes) {:-9} YES votes {:2…

為什么應該用模塊取代C/C++中的頭文件?

摘要:本文整理自Apple C工程師Doug Gregor的演講Slide,他表示希望使用模塊(Module)這一概念替代C/C中的頭文件,現已被C標準化委員會任命為Module研究組的主席,研究該提議的可能性。考慮到Apple的開源項目LL…

北向資金進行股票、期貨指數、基金策略

#%%導入包 import tushare as ts import datetime import pandas as pd import numpy as np import akshare as ak import warnings warnings.filterwarnings("ignore")#獲取北向資金數據 df_data2 ak.stock_em_hsgt_north_acc_flow_in(indicator"北上") d…

Kong Api 初體驗、Kong安裝教程

見:https://blog.csdn.net/forezp/article/details/79383631Kong是一個可擴展的開源API層(也稱為API網關或API中間件)。 Kong運行在任何RESTful API的前面,并通過插件擴展,它們提供超出核心平臺的額外功能和服務。 Kon…

Spring Boot2.0+中,自定義配置類擴展springMVC的功能

在spring boot1.0,我們可以使用WebMvcConfigurerAdapter來擴展springMVC的功能,其中自定義的攔截器并不會攔截靜態資源(js、css等)。 Configuration public class MyMvcConfig extends WebMvcConfigurerAdapter {Overridepublic v…

從谷歌宕機事件認識互聯網工作原理

摘要:谷歌服務器經歷了短暫的宕機事件,持續大概27分鐘,對部分地區的互聯網用戶造成了影響。此次事件的原因深究起來需要進入互聯網絡那深邃的、黑暗的角落。 譯者注:本文中提到CloudFlare是一家總部位于美國舊金山的內容分發網絡(…

聊聊技術寫作的個人體會

有群友問過,是什么原因使我開始寫技術公眾號,又是什么動力讓我堅持寫的。 在我看來,寫作是一件不能敷衍的事,通過寫作來學習,反而要比單純地學習的效果要好。為了寫成一篇“拿得出手”的文章,我要反復查找資…

「2019冬令營提高組」全連

傳送門 顯然的 $dp$ 設 $f[i]$ 表示點擊第 $i$ 個音符時的最大價值,$t[i]$ 表示音符 $i$ 的準備時間 那么可以枚舉 $1$ 到 $i-t[i]$ 的所有音符,如果 $j$ ,如果 $jt[j]$ 小于等于 $i$ ,那么 $f[i]max(f[i],f[j]t[i]*val[i])$ 考慮…

Docker常用命令、超實用、講解清晰明了(rm、stop、start、kill、logs、diff、top、cp、restart ...)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. 查看docker信息(version、info) # 查看docker版本 $docker version # 顯示docker系統的信息 $docker i…

推薦給開發人員的實用命令行工具

摘要:優秀的工具對于定位問題出在何處有著無可估量的價值,而且能在一開始就幫助我們阻止問題的出現,總的來說能使我們的工作更有效率。本文介紹了6個非常強大且靈活的工具,熟練使用這些工具能使你的生活變得更輕松一些。 作為一名…

雷軍:啟動手機+AIoT雙引擎戰略 5G春天到來前打持久戰

雷帝網 樂天 1月11日報道 小米CEO雷軍今日在小米年會上宣布,2019年,小米將正式啟動“手機AIoT”雙引擎戰略,這將是小米未來五年的核心戰略。未來5年,小米將在AIoT領域持續投入超過100億元。從2019年起,AIoT&#xff0c…

Jenkins自定義主題

x下載自定義樣式 http://afonsof.com/jenkins-material-theme/ 打開連接 最后點擊:DOWNLOAD TOUR THEME! 得到樣式文件:jenkins-material-theme.css 上傳樣式文件到jenkins 將jenkins-material-theme.css 上傳到: /var/jenkins_home/userCont…

SSH (Secure Shell)詳解

Secure Shell(SSH)是一種加密 網絡協議,用于在不安全的網絡上安全地運行網絡服務。 SSH通過客戶端 - 服務器體系結構中的不安全網絡提供安全通道,將SSH客戶端應用程序與SSH服務器相連接。 常見的應用程序包括遠程命令行登錄和遠程…

股票配對收益

import pandas as pd import numpy as npimport matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei] # 字體設置 import matplotlib matplotlib.rcParams[axes.unicode_minus]False # 負號顯示問題from arch.unitroot import ADF …

YUV420、YUV422、RGB24轉換

//平面YUV422轉平面RGB24 static void YUV422p_to_RGB24(unsigned char *yuv422[3], unsigned char *rgb24, int width, int height) { int R,G,B,Y,U,V; int x,y; int nWidth width>>1; //色度信號寬度 for (y0;y<height;y) { for (x0;x<width;x) { …

最長非下降子序列(O(nlogn))(offer收割)

題目 如題 思路 核心思想是&#xff0c;維護一個數組ends&#xff0c;它記錄了長度為k的子序列的末尾元素的最小值。聽起來很抽象&#xff0c;我們不妨手動演示一遍整個過程。 假設數組a{2,9,4,27,29,15,7}&#xff0c;令length表示當前找到的最長非下降子序列的長度。初始時le…

[Python]小甲魚Python視頻第026課(字典:當索引不好用時2)課后題及參考解答

# -*- coding: utf-8 -*- """ Created on Fri Mar 8 10:32:20 2019author: Administrator """"""測試題&#xff1a;0. Python的字典是否支持一鍵&#xff08;Key&#xff09;多值&#xff08;Value&#xff09;&#xff1f;不支…

2021-08-12 畫蠟燭線

畫蠟燭線 pip install https://github.com/matplotlib/mpl_finance/archive/master.zip from mpl_finance import candlestick_ochl import matplotlib.pyplot as plt from matplotlib.pylab import date2num# 先畫日K線 fig, axes plt.subplots(nrows1, ncols1, figsize(20, …