Docker這些none:none的鏡像,難道就不配擁有名字嗎


1 前言

歡迎訪問南瓜慢說 www.pkslow.com獲取更多精彩文章!

搞容器開發一段時間后,想看看都有哪些鏡像,執行了一下docker images -a,蒙圈了,有一堆<none>:<none>的鏡像。不知有什么用,不知能不能刪,不知會不會占用很多空間。接下來我們探索一下吧。

2 鏡像也有好壞嗎?

這些<none>:<none>鏡像可分為兩類:好與壞、有用與無用、不建議刪除和建議刪除的。

2.1 好的none

好的<none>:<none>鏡像是由於鏡像分層的中間鏡像。它們只會在docker images -a才會顯示出來,用docker images是不會顯示的。它們也不會造成空間問題。

2.2 壞的none

壞的<none>:<none>鏡像會占用空間,主要是由於新加鏡像替換原來相對標簽的鏡像,原來鏡像就變成了<none>:<none>而不會被刪除。

我們執行docker images查看:

$ docker images
REPOSITORY                TAG       IMAGE ID            CREATED             SIZE
pkslow/springboot-mongo   0.0.6     f029f9b6e703        28 minutes ago      356MB
pkslow/springboot-mongo   latest    f029f9b6e703        28 minutes ago      356MB
<none>                    <none>    56de36189ad6        29 minutes ago      356MB
<none>                    <none>    9e00dfd258dc        40 hours ago        356MB
<none>                    <none>    2d736eaaafd0        2 weeks ago         346MB

然后再docker build一次,用同樣的標簽0.0.6

$ docker images
REPOSITORY                TAG       IMAGE ID            CREATED             SIZE
pkslow/springboot-mongo   0.0.6     2119e4fbc6e8        43 seconds ago      356MB
pkslow/springboot-mongo   latest    2119e4fbc6e8        43 seconds ago      356MB
<none>                    <none>    f029f9b6e703        30 minutes ago      356MB
<none>                    <none>    56de36189ad6        31 minutes ago      356MB
<none>                    <none>    9e00dfd258dc        40 hours ago        356MB
<none>                    <none>    2d736eaaafd0        2 weeks ago         346MB

認真查看可以得出,以前最新的鏡像ID為f029f9b6e703,后來變成了<none>:<none>

這些壞壞的鏡像也叫dangling images,空懸鏡像。

3 如何刪除dangling images

既然沒用,又還占用空間,不如就刪掉它。Docker沒有自動刪除這些鏡像的機制,可以通過以下命令刪除:

$ docker rmi $(docker images -f "dangling=true" -q)

檢查一下,已經沒有<none>的鏡像了。

$ docker images | grep '<none>'

歡迎關注微信公眾號<南瓜慢說>,將持續為你更新...

多讀書,多分享;多寫作,多整理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM