docker?system?prune命令使用示例詳解
該命令用于刪除 Docker 系統(tǒng)中未使用的數(shù)據(jù)
1.介紹
官網(wǎng)描述:刪除所有未使用的容器、網(wǎng)絡(luò)、映像(包括懸掛的和未引用的),以及卷(可選)。
名詞解釋:
- 未使用的容器:所有已停止的容器將被刪除。
- 未使用的鏡像:只有懸掛的鏡像(未被任何容器引用)將被刪除,除非使用了 -a 或 --all 參數(shù)。
- 未使用的網(wǎng)絡(luò):所有未被容器使用的自定義網(wǎng)絡(luò)將被刪除。
- 未使用的卷(如果使用 --volumes 或 -v 選項(xiàng)):所有未被容器引用的卷將被刪除。
相關(guān)參數(shù):
- -a, --all:刪除未被任何容器引用的所有鏡像,而不僅僅是懸掛的鏡像。
- –filter:根據(jù)提供的條件過(guò)濾要?jiǎng)h除的內(nèi)容。
- –force, -f:跳過(guò)確認(rèn)步驟,直接執(zhí)行刪除,不加的話在執(zhí)行步驟時(shí)需要手動(dòng)確認(rèn),建議不用。手動(dòng)容錯(cuò)率高一點(diǎn)
- –volumes, -v:刪除所有未被至少一個(gè)容器引用的卷。
2.使用示例
簡(jiǎn)單示例:
- 刪除所有未使用的容器、鏡像、網(wǎng)絡(luò):docker system prune
- 刪除所有未使用的容器、鏡像(包括未被引用的)、網(wǎng)絡(luò):docker system prune -a
- 刪除所有未使用的容器、鏡像、網(wǎng)絡(luò)、卷:docker system prune --volumes
Filtering (–filter)
until 過(guò)濾器
此過(guò)濾器允許刪除在給定時(shí)間戳之前創(chuàng)建的容器、鏡像和網(wǎng)絡(luò)。
支持Unix時(shí)間戳、日期格式的時(shí)間戳或Go持續(xù)時(shí)間字符串(例如10m、1h30m),這些字符串是相對(duì)于守護(hù)進(jìn)程機(jī)器的時(shí)間計(jì)算的。
docker system prune --filter "until=1h"
label 過(guò)濾器
label 過(guò)濾器允許根據(jù)容器、鏡像、網(wǎng)絡(luò)和卷的標(biāo)簽進(jìn)行篩選。有兩種格式:label= 或 label== 只會(huì)刪除具有指定標(biāo)簽的對(duì)象,而 label!= 或** label!==** 會(huì)刪除不具有指定標(biāo)簽的對(duì)象。
假設(shè)有一個(gè) “nginx” 容器,版本標(biāo)簽為 “1.21.0”??梢园匆韵路绞绞褂脴?biāo)簽過(guò)濾器:
第一種:刪除所有帶有 “version=1.21.0” 標(biāo)簽的未使用的容器、鏡像和網(wǎng)絡(luò)
docker system prune --filter "label=version=1.21.0"
第二種:刪除所有不帶有 “app=nginx” 標(biāo)簽的未使用的容器、鏡像和網(wǎng)絡(luò)
docker system prune --filter "label!=app=nginx"
也可以與-a和-v一起使用
docker system prune -a -v --filter "label!=app=nginx"
其中l(wèi)abel可以使用docker inspect <容器id或名稱> 來(lái)查看labels
下面是一個(gè)容器的Labels部分
{ "Labels": { "com.docker.compose.config-hash": "b637c41bf29efe8fcd1d3c7baa3ad5ba8dc44f21cec0d3937d665fb79df76644", "com.docker.compose.container-number": "1", "com.docker.compose.oneoff": "False", "com.docker.compose.project": "jpom", "com.docker.compose.project.config_files": "docker-compose.yml", "com.docker.compose.project.working_dir": "/www/docker-compose/jpom", "com.docker.compose.service": "jpom", "com.docker.compose.version": "1.29.2" } }
以下是示例:
1.刪除特定項(xiàng)目的所有容器、圖像和網(wǎng)絡(luò):
docker system prune --filter "label=com.docker.compose.project=jpom"
2.刪除特定服務(wù)的所有容器、圖像和網(wǎng)絡(luò):
docker system prune --filter "label=com.docker.compose.service=jpom"
3.刪除使用特定版本的Docker Compose創(chuàng)建的所有容器、圖像和網(wǎng)絡(luò):
docker system prune --filter "label=com.docker.compose.version=1.29.2"
雖然這個(gè)命令可以釋放資源,但在執(zhí)行時(shí)需要仔細(xì)確認(rèn),以免誤刪數(shù)據(jù),必要情況下需要備份重要的數(shù)據(jù)。
注意:docker system prune -a 是一個(gè)非常有用但也需要小心使用的 Docker 命令。這條命令的作用是清理Docker環(huán)境中不再需要的資源,以節(jié)省存儲(chǔ)空間。這些資源包括已停止的容器、未使用的網(wǎng)絡(luò)、懸掛的鏡像以及構(gòu)建緩存。
具體來(lái)說(shuō),docker system prune -a 會(huì)做以下操作:
- 刪除所有已停止的容器:這可以幫助釋放被這些容器占用的存儲(chǔ)空間。
- 刪除所有未使用的網(wǎng)絡(luò):這些網(wǎng)絡(luò)通常在不再需要時(shí)應(yīng)當(dāng)被刪除。
- 刪除所有懸掛的鏡像:懸掛的鏡像是沒(méi)有標(biāo)簽的鏡像,這些鏡像通常是由于新版本的鏡像被拉取后,舊版本的鏡像失去了其原有的標(biāo)簽而成為懸掛的。
- 由于 -a 選項(xiàng),命令還會(huì)刪除所有未被任何容器引用的鏡像,不僅僅是懸掛的鏡像。這意味著,即使某個(gè)鏡像有標(biāo)簽,但如果它沒(méi)有被任何容器使用,那么它也會(huì)被刪除。
- 刪除所有的構(gòu)建緩存:這些緩存通常用于加速Docker鏡像的構(gòu)建,但在某些情況下,它們可能會(huì)占用大量的存儲(chǔ)空間。
使用此命令時(shí)應(yīng)當(dāng)非常小心,因?yàn)橐坏┵Y源被刪除,就無(wú)法恢復(fù)。在執(zhí)行此命令之前,建議先備份所有重要的數(shù)據(jù)和容器。
如果只想清理特定的資源,例如只刪除已停止的容器,可以使用其他更具體的命令,如 docker container prune
總結(jié)
到此這篇關(guān)于docker system prune命令使用示例詳解的文章就介紹到這了,更多相關(guān)docker system prune命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker集群的創(chuàng)建與管理實(shí)例詳解
這篇文章主要介紹了Docker集群的創(chuàng)建與管理,結(jié)合實(shí)例形式詳細(xì)分析了docker集群原理、創(chuàng)建、訪問(wèn)等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06docker?pull報(bào)錯(cuò)unexpected?EOF問(wèn)題的解決方案
在清理Docker私有倉(cāng)庫(kù)的垃圾鏡像和緩存后,新推送到倉(cāng)庫(kù)的鏡像會(huì)出現(xiàn)unexpectedEOF錯(cuò)誤,這篇文章主要介紹了docker?pull報(bào)錯(cuò)unexpected?EOF問(wèn)題的解決方案,需要的朋友可以參考下2025-04-04Docker基于現(xiàn)有鏡像構(gòu)建新鏡像的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker基于現(xiàn)有鏡像構(gòu)建新鏡像的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12如何修改Docke上傳/下載并發(fā)線程數(shù)來(lái)解決docker: unexpected EOF.錯(cuò)誤問(wèn)題
下載或上傳鏡像時(shí),有可能因?yàn)榫W(wǎng)絡(luò)問(wèn)題導(dǎo)致報(bào)出docker: unexpected EOF.的錯(cuò)誤,這時(shí)候可以考慮通過(guò)修改上傳/下載并發(fā)線程數(shù)來(lái)解決,本文給大家分享兩種方法幫助大家解決,需要的朋友一起看看吧2023-03-03Docker如何部署SQL?Server?2017?Always?On集群
這篇文章主要介紹了Docker如何部署SQL?Server?2017?Always?On集群?jiǎn)栴},具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07docker在win10家庭版下構(gòu)建laravel開(kāi)發(fā)環(huán)境的教程詳解
這篇文章主要介紹了docker在win10家庭版下構(gòu)建laravel開(kāi)發(fā)環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境
這篇文章主要介紹了一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07