清理Docker 鏡像、容器和卷

清除所有未使用的鏡像、容器、卷和網(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 stopdocker 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容