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>'
歡迎關注微信公眾號<南瓜慢說>,將持續為你更新...

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