docker如何刪除<none>/dangling/懸空鏡像
問題
在docker build 的過程中會出現(xiàn)中間鏡像。中間鏡像不一定會自動刪除。
會占用存儲空間
可以通過以下命令查找懸空的鏡像
docker images -f dangling=true
docker images更多用法可以看我的這篇文章
積少成多,懸空鏡像還是很占用空間的。
具體占用系統(tǒng)哪塊空間可以使用以下命令
docker image inspect <IMAGE_ID>
在GraphDriver中間,顯示的就是在服務器中存儲在哪里。
可以通過修改data-root來更換位置
解決
情況懸空鏡像可以通過以下命令來清楚
docker rmi $(docker images -f "dangling=true" -q)
也可以通過以下命令來刪除。
docker image prune
但是如果加上-a會有一個問題,按照官方解釋加上-a不僅會刪除懸空鏡像,還會刪除未使用的鏡像。
比如說我下載了某個鏡像A,但是沒有生成容器呢,或者容器已經(jīng)刪除了,這時這個鏡像A就叫做未使用的鏡像。
可以參考:
https://stackoverflow.com/questions/45142528/what-is-a-dangling-image-and-what-is-an-unused-image
刪除過程中可能出現(xiàn)以下問題
Error response from daemon: conflict: unable to delete bcd6c489bc72 (must be forced) - image is being used by stopped container e34ee987580c
代表有容器正在使用,通過以下命令查看是哪個容器
docker ps -a |grep e34ee987580c
通過輸出可以知道這個容器已經(jīng)退出了,并且紅框里這個命名規(guī)則是docker自動生成的,是一個“比較奇怪的組合”
可以放心刪除
docker rm e34ee987580c
清理之后就可以刪除懸空鏡像了
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MySQL容器中docker-entrypoint-initdb.d目錄的使用
這篇文章主要介紹了MySQL容器中docker-entrypoint-initdb.d目錄的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05在Linux?Docker中部署RStudio?Server實現(xiàn)遠程訪問的操作
下面介紹在Linux?docker中安裝RStudio?Server并結合cpolar內網(wǎng)穿透工具,實現(xiàn)遠程訪問,docker方式安裝可以避免很多問題,一鍵安裝,如設備沒有安裝docker,需提前安裝docker,對?Docker部署RStudio?Server相關知識感興趣的朋友一起看看吧2023-12-12