我想調試一個Docker緩存問題,我想檢查緩存是否應該匹配。Docker用於緩存COPY的校驗和是什麼?
Step 7 : COPY myfile /home/me/myfile
---> daa0799b47df
上面的ID代表什麼?它似乎不是md5或sha1校驗和的一部分。我可以運行一個命令來檢查這個嗎?
我想調試一個Docker緩存問題,我想檢查緩存是否應該匹配。Docker用於緩存COPY的校驗和是什麼?
Step 7 : COPY myfile /home/me/myfile
---> daa0799b47df
上面的ID代表什麼?它似乎不是md5或sha1校驗和的一部分。我可以運行一個命令來檢查這個嗎?
它是隨機字節,十六進制編碼。這是由https://github.com/docker/docker/blob/master/utils/utils.go#L171返回並由https://github.com/docker/docker/blob/master/utils/utils.go#L180生成的簡寫。這不是一個校驗和,並且再次是隨機的。它只是用來識別圖像和容器。
Docker 1.10+ introduced ID's based on secure content hashes。
爲每個文件系統層的內容生成散列,然後爲圖像描述符生成散列。如果圖像的任何組件發生更改,則散列會更改。
so yeah它是打印的COPY圖層摘要,而不是Docker從文件計算的校驗和 – eversMcc
這對於Docker 1.9和更低版本 – Matt