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