在泊塢窗documentation of docker image prune,可以使用-a標誌Docker:什麼是搖擺的圖像,什麼是未使用的圖像?
刪除所有未使用的圖像,而不僅僅是那些晃來晃去
後來
刪除所有圖像晃來晃去。如果指定了-a,還將刪除未被任何容器引用的所有圖像。
有人可以向我解釋什麼是懸掛圖像,懸掛和未使用的圖像有什麼區別?
在泊塢窗documentation of docker image prune,可以使用-a標誌Docker:什麼是搖擺的圖像,什麼是未使用的圖像?
刪除所有未使用的圖像,而不僅僅是那些晃來晃去
後來
刪除所有圖像晃來晃去。如果指定了-a,還將刪除未被任何容器引用的所有圖像。
有人可以向我解釋什麼是懸掛圖像,懸掛和未使用的圖像有什麼區別?
未使用的圖像表示它尚未在容器中分配或使用。例如,在運行docker ps -a
時,它會列出所有已退出和當前正在運行的容器。顯示在任何容器內的任何圖像都是「使用的圖像」。
另一方面,一張懸掛的圖像意味着你已經創建了圖像的新版本,但沒有給它一個新的名字。所以你的舊圖像變成了「搖擺的圖像」。那些舊圖像是未標記的,當您運行docker images
時,它的名稱上會顯示「<none>
」。
當運行docker system prune -a
時,它將刪除未使用和懸掛的圖像。因此,在容器中使用的任何圖像,不管是已退出還是正在運行,都不會受到影響。
泊塢窗中的圖像被sha256摘要引用,通常被稱爲圖像ID。該摘要就是您需要的圖像存在於碼頭主機上。通常,您將擁有指向這些摘要的標籤,例如標籤busybox:最新的當前指向圖像ID c30178c523 ...在我的系統上。多個標籤可以指向相同的圖像,並且可以改變任何標籤以指向不同的標識,例如,當你拉一個busybox的新副本:最新或建立一個新版本的應用程序圖像。
懸掛圖像是沒有標籤且沒有子圖像的圖像(例如,使用不同版本的FROM busybox:latest
的舊圖像)指向它們的圖像。他們可能在之前有一個標籤指向他們,並且標籤後來改變了。或者他們可能從未有過標籤(例如,不包含標籤選項的docker build
的輸出)。只要沒有容器仍在運行,這些參考舊圖像ID,這些通常是安全的。保持它們的主要原因是構建緩存目的。
此外,您可能已經下載了當前未被容器(包括已停止的容器)使用的圖像。這些與懸掛圖像完全不同,只要您不打算將來使用它們,或者在您確實需要時再下載另一個副本,則可能會安全刪除。
根據運行docker修剪時的文檔沒有 - 只有懸掛的圖像被刪除。 -a將確保未使用的圖像也被正確刪除? https://docs.docker.com/engine/reference/commandline/system_prune/ – herm
這是正確的,-a將[刪除所有未使用的圖像不只是懸掛的](https://docs.docker.com/engine/reference/commandline/system_prune /) – Serey
非常有趣。所以一個容器可以使用一個搖晃的圖像。 [注意:如果存在任何使用這些未標記圖像的容器,Docker會警告您。](https://docs.docker.com/engine/reference/commandline/images/#filtering) – herm