在Docker中,最容易產生誤解的部分應該就是latest這個標籤。困惑主要是由於這個名字造成的,因為字面意思並不能表達它的真正含義。在本文中,我們來學習下latest標籤的真正作用和如何正確使用它。
#通常有兩種方式來對映像打標籤:使用docker tag指令或是在執行docker build的時候用-t來傳遞參數。在這兩種情況下,參數的形式通常是repository_name:tag_name,例如:docker tag myrepo:mytag。如果這個資源庫被上傳到了Docker Hub,資源庫的名字會加上一個由Docker Hub使用者名稱和斜線組成的前綴,例如:amouat/myrepo:mytag。如果沒有加入tag部分的參數,例如:docker tag myrepo:1.0 myrepo,Docker會自動的給它latest標籤。前面這些內容或許你已經熟知,其實它也就這點內容,並沒有什麼神奇的地方。
不能因為鏡像的標籤是latest就認為這是資源庫中最新的鏡像。只有這個資源庫的擁有者約定這樣,擁有latest標籤的鏡像一定是最新的鏡像。例如,我可以輕易地把一個過時的鏡像變成一個有latest標籤的鏡像,例如:
#這裡有latest標籤的鏡像與0.9版本的鏡像是一樣的,都是兩週前的版本,然而1.0的鏡像是一分鐘以前的。
為什麼這個標籤會讓很多人迷惑,其實比較容易理解。 ‘just pull the latest image’ 這句話的意思是取得帶有latest標籤的鏡像還是取得最新的鏡像?這兩者是否是一樣呢?它們是不是資源庫中最新的鏡像呢?是最新的穩定版鏡像或是最新的開發版鏡像呢?
更糟的是,很多人似乎認為latest標籤會自動更新,也就是說如果我取得一個有latest標籤的映像,Docker會在每次運行之前去檢查它是不是最新的版本。這是絕對不會出現的情況,就像其它的標籤一樣,你需要去手動決定Docker取得最新版本的映像。
困惑並不僅僅是這些。如果我從資源庫docker pull一個映像卻沒指定標籤,會發生什麼事?如果你認為會取得下所有的鏡像,那麼就錯了,它只會取得下來有latest標籤的那個。如果你需要取得全部鏡像,需要加上-a標誌。如果你在資源庫執行了pull操作,卻沒帶latest標籤,會發生什麼事?如下圖所示:
$ docker pull amouat/myrepo Pulling repository amouat/myrepo 2015/01/21 12:04:06 Tag latest not found in repository amouat/myrepo
意料之中的是Docker給了錯誤訊息。但是我認為你不知道這其中發生了什麼。一個更令人討厭的是latest標籤隱藏了其它的標籤,假設你要下載帶有latest標籤的debian鏡像。哪個是它的版本呢?
$ docker images debian REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE debian latest 4d6ce913b130 4 days ago 84.98 MB
額,不知道。事實上是7.8 wheezy版本。
#我認為Docker在下載映像時應該把所有的標籤都帶上,但我不知道為什麼它沒有這麼做。現在的情況是用戶可以擁有同一個鏡像的不同版本因為伺服器上用標籤來標示。例如:如果wheezy和latest都在Hub上更新了,而我只獲取了更新後的wheezy版本debian,那麼儘管在Hub上他們可以被區分開,但是我的wheezy標籤將會比本地的latest標籤的版本新。
上述只是涵蓋了latest的大部分語意以及它造成的常見誤解。這種情況怎麼能夠改善呢?個人認為,可以取消latest標籤並用一個更接近其字面意思的詞來代替,例如default。我也希望可以看到一些改進標籤原作方式的工作,例如同時更新一個鏡像的全部標籤。同時,我也強烈建議資源庫管理員去警惕這個latest標籤並徹底放棄它。
以上是latest 標籤在Docker 中的作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

多年來,Linux軟件分佈依賴於DEB和RPM等本地格式,並深深地根深蒂固。 但是,Flatpak和Snap已經出現,有望成為應用程序包裝的通用方法。 本文考試

Linux和Windows在處理設備驅動程序上的差異主要體現在驅動管理的靈活性和開發環境上。 1.Linux採用模塊化設計,驅動可以動態加載和卸載,開發者需深入理解內核機制。 2.Windows依賴微軟生態,驅動需通過WDK開發並簽名認證,開發相對複雜但保證了系統的穩定性和安全性。

Linux和Windows的安全模型各有優勢。 Linux提供靈活性和可定制性,通過用戶權限、文件系統權限和SELinux/AppArmor實現安全。 Windows則注重用戶友好性,依賴WindowsDefender、UAC、防火牆和BitLocker保障安全。

Linux和Windows在硬件兼容性上不同:Windows有廣泛的驅動程序支持,Linux依賴社區和廠商。解決Linux兼容性問題可通過手動編譯驅動,如克隆RTL8188EU驅動倉庫、編譯和安裝;Windows用戶需管理驅動程序以優化性能。

Linux和Windows在虛擬化支持上的主要區別在於:1)Linux提供KVM和Xen,性能和靈活性突出,適合高定制環境;2)Windows通過Hyper-V支持虛擬化,界面友好,與Microsoft生態系統緊密集成,適合依賴Microsoft軟件的企業。

Linux系統管理員的主要任務包括系統監控與性能調優、用戶管理、軟件包管理、安全管理與備份、故障排查與解決、性能優化與最佳實踐。 1.使用top、htop等工具監控系統性能,並進行調優。 2.通過useradd等命令管理用戶賬戶和權限。 3.利用apt、yum管理軟件包,確保系統更新和安全。 4.配置防火牆、監控日誌、進行數據備份以確保系統安全。 5.通過日誌分析和工具使用進行故障排查和解決。 6.優化內核參數和應用配置,遵循最佳實踐提升系統性能和穩定性。

學習Linux並不難。 1.Linux是一個開源操作系統,基於Unix,廣泛應用於服務器、嵌入式系統和個人電腦。 2.理解文件系統和權限管理是關鍵,文件系統是層次化的,權限包括讀、寫和執行。 3.包管理系統如apt和dnf使得軟件管理方便。 4.進程管理通過ps和top命令實現。 5.從基本命令如mkdir、cd、touch和nano開始學習,再嘗試高級用法如shell腳本和文本處理。 6.常見錯誤如權限問題可以通過sudo和chmod解決。 7.性能優化建議包括使用htop監控資源、清理不必要文件和使用sy


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具