docker 使您可以輕松地將應用程序和服務包裝在容器中,以便您可以在任何地方運行它們。然而,當您使用 Docker 時,也很容易積累過多未使用的映像、容器和數據卷,從而使輸出變得混亂并消耗磁盤空間。 Docker 為您提供了從命令行清理系統所需的所有工具。此備忘單式指南提供了命令的快速參考,這些命令可通過刪除未使用的 Docker 映像、容器和卷來釋放磁盤空間并保持系統井井
清除所有未使用或懸空的鏡像、容器、卷和網絡
Docker 提供了一個命令來清理所有資源 — 鏡像、容器、卷和網絡——懸空的(未標記或與容器):
docker system prune
要另外刪除任何已停止的容器和所有未使用的圖像(不僅僅是懸空圖像),請將 -a 標志添加到命令:
docker system prune -a
刪除 Docker 鏡像
刪除一個或多個特定鏡像
使用帶有 -a 標志的 docker images 命令來查找要刪除的映像的 ID。這將顯示 您的每個圖像,包括中間圖像層。當你已經 找到要刪除的鏡像,可以將其 ID 或標簽傳遞給 docker rmi:
列表:
docker images -a
刪除:
docker rmiImageImage
刪除懸掛的 Docker鏡像
Docker 鏡像由多個層組成。懸掛的圖像是層 與任何標記的圖像沒有關系。他們不再服務 目的并消耗磁盤空間??梢酝ㄟ^添加過濾器來定位它們 docker images 命令的標志 -f 的值為 dangling=true 。當您確定要刪除它們時,可以使用 docker image prune 命令:
列表:
docker images -f dangling=true
刪除:
docker image prune
根據a刪除圖像模式
您可以使用 docker 鏡像和 grep 的組合來查找與某個模式匹配的所有鏡像。一旦您滿意,您可以使用 awk 將 ID 傳遞給 docker rmi 來刪除它們。請注意,這些實用程序不是由 Docker 提供的,也不一定在所有系統上都可用:
列表:
docker images -a | grep "pattern"
刪除:
docker images -a | grep "pattern" | awk '{print ":"}' | xargs docker rmi
刪除所有鏡像
a 上的所有 Docker 鏡像可以通過在 docker images 命令中添加 -a 來列出系統。一旦您確定要全部刪除它們,您可以添加 -q 標志以將映像 ID 傳遞給 docker rmi:
List:
docker images -a
刪除:
docker rmi $(docker images -a -q)
正在刪除容器
刪除一個或多個特定容器
使用帶有 -a 標志的 docker ps 命令來查找要刪除的容器的名稱或 ID刪除:
列表:
docker ps -a
刪除:
docker rm ID_or_NameID_or_Name
退出時刪除容器
如果您知道在創建容器時您不想保留它完成后,您可以運行 docker run –rm 以在退出時自動刪除它:
運行并刪除:
docker run --rm image_name
刪除所有退出的容器
您可以使用 docker ps -a 定位容器并按狀態過濾它們:已創建、正在重新啟動、正在運行、已暫?;蛲顺?。要查看已退出容器的列表,請使用 -f 標志根據狀態進行過濾。當您確認要刪除這些容器后,請使用 -q 將 ID 傳遞給 docker rm 命令:
列表:
docker ps -a -f status=exited
刪除:
docker rm $(docker ps -a -f status=exited -q)
刪除使用多個容器filter
Docker 過濾器可以通過重復過濾器標志與 附加價值。這會產生滿足以下任一條件的容器列表 健康)狀況。例如,如果您想刪除所有標記為 無論是創建(當您使用無效命令運行容器時可能導致的狀態)還是退出,您都可以使用兩個過濾器:
列表:
docker ps -a -f status=exited -f status=created
刪除:
docker rm $(docker ps -a -f status=exited -f status=created -q)
根據模式
您可以使用 docker ps 和 grep 的組合來查找與模式匹配的所有容器。當您對要刪除的列表感到滿意時,可以使用 awk 和 xargs 向 docker rm 提供 ID。請注意,這些實用程序不是由 Docker 提供的,也不一定在所有系統上都可用:
列表:
docker ps -a | grep "pattern”
刪除:
docker ps -a | grep "pattern" | awk '{print }' | xargs docker rm
停止并移除所有容器
您可以查看使用 docker ps 系統上的容器。添加 -a 標志將顯示所有容器。當您確定要刪除它們時,可以添加 -q 標志以向 docker stop 和 docker rm 命令提供 ID:
List:
docker ps -a
刪除:
docker stop $(docker ps -a -q)docker rm $(docker ps -a -q)
刪除卷
刪除一個或多個特定卷
使用 docker volume ls 命令找到要刪除的一個或多個卷名稱。然后,您可以使用 docker volume rm 命令刪除一個或多個卷:
列表:
docker volume ls
刪除:
docker volume rm volume_namevolume_name
刪除懸空卷
從那時起卷的存在獨立于容器, 當刪除容器時,卷不會自動刪除 同時。當卷存在并且不再連接到任何卷時 容器,稱為懸空卷。 ?要找到它們以確認要刪除它們,可以使用 docker volume ls 帶有過濾器的命令將結果限制為懸空卷。什么時候 如果您對列表感到滿意,可以使用 docker volume prune 刪除它們:
列表:
docker volume ls -f dangling=true
刪除:
docker volume prune
移除容器及其卷
如果創建未命名卷,則可以使用 -v 標志將其與容器同時刪除。請注意,這僅適用于未命名的 卷。當容器被成功移除后,其ID為 顯示。請注意,沒有提及刪除該卷。 如果未命名,則會默默地從系統中刪除。如果是的話 命名后,它會默默地存在。
刪除:
docker rm -v container_name