清除所有未使用的鏡像、容器、卷和網(wǎng)絡(luò)
Docker 提供了一個命令來清理的資源——images, containers, volumes, and networks:
$ docker system prune
要額外刪除任何已停止的容器和所有未使用的images,添加-a參數(shù)到命令中:
$ docker system prune -a
刪除Docker Image
使用docker images 加上-a參數(shù)來定位要刪除的Image的ID。 之后將ID傳遞給docker rmi:
List:
docker images -a
Remove:
docker rmi <ImageID> <ImageID>
刪除 dangling images
當(dāng)build docker 鏡像的時候,有時會遇到用一個甚至多個中間層鏡像,這會一定程度上減少最終打包出來 docker 鏡像的大小,但是會產(chǎn)生一些tag 為 none 的無用鏡像,也稱為懸掛鏡像 (dangling images)
列出所有的 dangling images:
docker images -f "dangling=true"
刪除所有的 dangling images:
docker rmi $(docker images -f "dangling=true" -q)
刪除所有Image
使用docker images添加-a可以列出系統(tǒng)上所有的docker鏡像, 如果確定要將他們?nèi)縿h除, 可以使用-q參數(shù)將ImageID傳給docker rmi
List:
docker images -a
Remove:
docker rmi $(docker images -a -q)
刪除Container
使用docker ps帶有-a標(biāo)志的命令來定位要刪除的容器的名稱或 ID:
List:
docker ps -a
Remove:
docker rm <ID_or_Name> <ID_or_Name>
退出時移除容器
如果要臨時創(chuàng)建一個容器, 并且運行完成后不再保留,可以運行docker run --rm
Run And Remove:
docker run --rm image_name
移除所有exited容器
您可以使用容器定位docker ps -a并按其狀態(tài)過濾它們:已創(chuàng)建、正在重新啟動、正在運行、已暫?;蛞淹顺?。要查看已退出容器的列表,請使用該-f標(biāo)志根據(jù)狀態(tài)進(jìn)行過濾。當(dāng)您確認(rèn)要刪除這些容器時,使用-q將 ID 傳遞給docker rm命令。
List:
docker ps -a -f status=exited
Remove:
docker rm $(docker ps -a -f status=exited -q)
使用多個過濾器刪除容器
Docker 過濾器可以通過使用附加值重復(fù)過濾器標(biāo)志來組合。這將生成滿足任一條件的容器列表。例如,如果您想刪除所有標(biāo)記為Created(使用無效命令運行容器時可能導(dǎo)致的狀態(tài))或Exited的容器,您可以使用兩個過濾器:
List:
docker ps -a -f status=exited -f status=created
Remove:
docker rm $(docker ps -a -f status=exited -f status=created -q)
停止并刪除所有容器
使用docker ps 查看系統(tǒng)上所有運行的容器, 添加-a參數(shù)顯示系統(tǒng)上所有容器(包括exited狀態(tài)的容器)。 添加-q參數(shù)后將ID傳給docker stop和docker rm停止不刪除所有容器
List:
docker ps -a
Remove:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
刪除一個或多個特定卷 - Docker 1.9 及更高版本
使用該docker volume ls命令定位要刪除的卷名或名稱。然后您可以使用以下docker volume rm命令刪除一個或多個卷:
List:
docker volume ls
Remove:
docker volume rm volume_name volume_name
刪除dangling卷 - Docker 1.9 及更高版本
由于卷的點是獨立于容器而存在的,所以當(dāng)一個容器被移除時,不會同時自動移除一個卷。當(dāng)卷存在并且不再連接到任何容器時,它被稱為懸垂卷。要找到它們以確認(rèn)您要刪除它們,您可以使用docker volume ls帶有過濾器的命令將結(jié)果限制為懸空體積。當(dāng)您對列表感到滿意時,您可以使用以下命令將它們?nèi)縿h除docker volume prune:
List:
docker volume ls -f dangling=true
Remove:
docker volume prune