構建映像時,Docker 會逐步跟進 Dockerfile 執行中的說明,并按照指定的順序執行每個說明。在檢查每條指令時,Docker 會在其緩存中查找可以重用的現有映像,而不是創建新的(重復)映像。
如果您根本不想使用緩存,則可以使用命令--no-cache=true 上的選項docker build。但是,如果您確實讓 Docker 使用其緩存,那么了解它什么時候可以,什么時候不能找到匹配的圖像很重要。Docker 遵循的基本規則概述如下:
從已經在緩存中的父映像開始,將下一條指令與從該基本映像派生的所有子映像進行比較,以查看其中一個是否是使用完全相同的指令構建的。如果不是,則緩存無效。
在大多數情況下,簡單地將 中的指令Dockerfile與子圖像之一進行比較就足夠了。但是,某些說明需要更多的檢查和解釋。
對于ADD和COPY指令,歐洲服務器租用,亞洲服務器,檢查圖像中文件的內容并為每個文件計算校驗和。這些校驗和不考慮文件的最后修改和最后訪問時間。在緩存查找期間,校驗和與現有圖像中的校驗和進行比較。如果文件中有任何更改,例如內容和元數據,則緩存無效。
除了ADDandCOPY命令之外,緩存檢查不會查看容器中的文件來確定緩存匹配。例如,在處理RUN apt-get -y update命令時,不會檢查容器中更新的文件以確定是否存在緩存命中。在這種情況下,僅使用命令字符串本身來查找匹配項。
一旦緩存失效,所有后續Dockerfile命令都會生成新圖像,并且不會使用緩存。
關注中國IDC圈官方微信:idc-quan 我們將定期推送IDC產業最新資訊
查看心情排 行你看到此篇文章的感受是:
云技術 云計算核心技術Docker教程:Docker集群管理群中的節點
Active 意味著調度程序可以將任務分配給節點。 <詳情>
云技術 云計算核心技術Docker教程:Docker配置網絡概述
無論Docker主機是運行Linux,Windows還是兩者結合使用,都可以使用Docker以與平臺無關的方式管理它們。 <詳情>
云技術 云計算Docker教程:在守護程序停機期間使容器保持活動狀態
默認情況下,當Docker守護程序終止時,它將關閉正在運行的容器。您可以配置守護程序,以便在守護程序不可用時容器仍在運行。此功能稱為實時還原。實時還原選項有助于減少由 <詳情>