刪除Docker鏡像、容器和卷的教程指南
介紹
Docker 可以輕松地將應(yīng)用程序和服務(wù)封裝在容器中,以便在任何地方運行。然而,在使用 Docker 的過程中,很容易積累大量未使用的鏡像、容器和數(shù)據(jù)卷,這些會使輸出雜亂,并占用磁盤空間。
Docker 提供了所有必要的工具,可以通過命令行清理系統(tǒng)。這個速查表樣式的指南提供了一個快速參考,列出了一些有用的命令,用于釋放磁盤空間,并通過刪除未使用的 Docker 鏡像、容器和卷來保持系統(tǒng)的組織。
如何使用本指南:
- 本指南采用速查表格式,包含獨立的命令行片段。
- 可直接跳轉(zhuǎn)到與您要完成的任務(wù)相關(guān)的任何部分。
注意
如果您希望一鍵部署 Docker 應(yīng)用程序到實時服務(wù)器,請查看 DigitalOcean App Platform。
清理所有未使用或懸空的鏡像、容器、卷和網(wǎng)絡(luò)
Docker 提供了一個單一命令,可以清理任何未使用的資源 —— 包括鏡像、容器、卷和網(wǎng)絡(luò) —— 它們是“懸空”的(沒有標(biāo)記或與容器關(guān)聯(lián)):
docker system prune
要額外刪除任何已停止的容器和所有未使用的鏡像(不僅僅是懸空的鏡像),請在命令中添加 -a
標(biāo)志:
docker system prune -a
刪除 Docker 鏡像
刪除一個或多個特定的鏡像
使用 docker images
命令和 -a
標(biāo)志來定位要刪除的鏡像的 ID。這將顯示每個鏡像,包括中間鏡像層。當(dāng)您找到要刪除的鏡像時,可以將它們的 ID 或標(biāo)記傳遞給 docker rmi
:
列表:
docker images -a
刪除:
docker rmi Image Image
刪除懸空的鏡像
Docker 鏡像由多個層組成。懸空鏡像是指與任何已標(biāo)記鏡像沒有關(guān)聯(lián)的層。它們不再起作用,并占用磁盤空間。可以通過向 docker images 命令添加過濾標(biāo)志 -f,值為 dangling=true 來定位它們。當(dāng)您確定要刪除它們時,可以使用 docker image prune 命令:
列表:
docker images -f dangling=true
刪除:
docker image prune
根據(jù)模式刪除鏡像
您可以使用 docker images
和 grep
的組合來查找與某個模式匹配的所有鏡像。一旦您滿意,可以使用 awk
將 ID 傳遞給 docker rmi
來刪除它們。請注意,這些實用程序不是由 Docker 提供的,并且不一定在所有系統(tǒng)上都可用:
列表:
docker images -a | grep "pattern"
刪除:
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
刪除所有鏡像
可以通過向 docker images
命令添加 -a
來列出系統(tǒng)上的所有 Docker 鏡像。一旦您確定要刪除它們,可以添加 -q
標(biāo)志將鏡像 ID 傳遞給 docker rmi
:
列表:
docker images -a
刪除:
docker rmi $(docker images -a -q)
刪除容器
刪除一個或多個特定的容器
使用 docker ps
命令和 -a
標(biāo)志來定位要刪除的容器的名稱或 ID:
列表:
docker ps -a
刪除:
docker rm ID_or_Name ID_or_Name
退出時刪除容器
如果您知道在創(chuàng)建容器時,一旦完成后就不需要保留它,可以運行 docker run --rm
來在退出時自動刪除它:
運行和刪除:
docker run --rm image_name
刪除所有已退出的容器
可以使用 docker ps -a
定位容器,并根據(jù)它們的狀態(tài)進行過濾:created
、restarting
、running
、paused
或 exited
。要查看“已退出”容器的列表,使用 -f
標(biāo)志基于狀態(tài)進行過濾。當(dāng)您驗證要刪除這些容器時,使用 -q
將 ID 傳遞給 docker rm
命令:
列表:
docker ps -a -f status=exited
刪除:
docker rm $(docker ps -a -f status=exited -q)
使用多個過濾器刪除容器
Docker 過濾器可以通過重復(fù)使用過濾器標(biāo)志和額外的值進行組合。這將導(dǎo)致滿足任一條件的容器列表。例如,如果您想要刪除所有標(biāo)記為 created
(當(dāng)您使用無效命令運行容器時可能出現(xiàn)的狀態(tài))或 exited
的容器,您可以使用兩個過濾器:
列表:
docker ps -a -f status=exited -f status=created
刪除:
docker rm $(docker ps -a -f status=exited -f status=created -q)
根據(jù)模式刪除容器
您可以使用 docker ps
和 grep
的組合來查找與模式匹配的所有容器。當(dāng)您確定要刪除的列表時,您可以使用 awk
和 xargs
將 ID 提供給 docker rm
。請注意,這些實用程序不是由 Docker 提供的,并且不一定在所有系統(tǒng)上都可用:
列表:
docker ps -a | grep "pattern”
刪除:
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm
停止并刪除所有容器
您可以使用 docker ps
來查看系統(tǒng)上的容器。添加 -a
標(biāo)志將顯示所有容器。當(dāng)您確定要刪除它們時,您可以添加 -q
標(biāo)志將 ID 提供給 docker stop
和 docker rm
命令:
列表:
docker ps -a
刪除:
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q)
刪除卷
刪除一個或多個特定卷 - Docker 1.9 及更高版本
使用 docker volume ls
命令定位要刪除的卷的名稱,然后可以使用 docker volume rm
命令刪除一個或多個卷:
列表:
docker volume ls
刪除:
docker volume rm volume_name volume_name
刪除懸空卷 - Docker 1.9 及更高版本
由于卷的存在是獨立于容器的,因此當(dāng)容器被刪除時,卷不會自動同時被刪除。當(dāng)一個卷存在且不再連接到任何容器時,它被稱為 懸空卷。為了確認(rèn)您要刪除它們,您可以使用 docker volume ls
命令并使用過濾器將結(jié)果限制為懸空卷。當(dāng)您對列表滿意時,您可以使用 docker volume prune
刪除它們:
列表:
docker volume ls -f dangling=true
刪除:
docker volume prune
刪除容器及其卷
如果您創(chuàng)建了一個未命名的卷,它可以在刪除容器時同時被刪除,使用 -v
標(biāo)志。請注意,這僅適用于 未命名 卷。當(dāng)容器成功刪除時,它的 ID 將被顯示。請注意,沒有提及刪除卷。如果它是未命名的,它將被靜默地從系統(tǒng)中刪除。如果它有名稱,它將靜默地保留。
刪除:
docker rm -v container_name
結(jié)論
本指南涵蓋了使用 Docker 刪除鏡像、容器和卷的一些常用命令。每個命令還有許多其他組合和標(biāo)志可以使用。要了解可用內(nèi)容的全面指南,請參閱 Docker 文檔中的 docker system prune、docker rmi、docker rm 和 docker volume rm。如果您希望在指南中看到常見的清理任務(wù),請在評論中提出或提出建議。
以上就是刪除Docker鏡像、容器和卷的教程指南的詳細內(nèi)容,更多關(guān)于刪除Docker鏡像、容器和卷的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Docker部署Spring Boot的實現(xiàn)方法
這篇文章主要介紹了使用Docker部署Spring Boot的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08使用Docker+jenkins+python3環(huán)境搭建超詳細教程
這篇文章主要介紹了使用Docker+jenkins+python3環(huán)境搭建超詳細教程,本文通過多種方法結(jié)合示例代碼給大家詳細介紹,需要的朋友可以參考下2021-07-07docker容器內(nèi)服務(wù)隨容器自動啟動的幾種方案
Docker是一種輕量級的容器化平臺,可以幫助開發(fā)者快速部署、運行和管理應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于docker容器內(nèi)服務(wù)隨容器自動啟動的幾種方案,需要的朋友可以參考下2024-07-07Docker數(shù)據(jù)存儲之tmpfs mounts詳解
今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲之tmpfs mounts詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02