1. 程式人生 > 實用技巧 >Docker這些none:none的映象,難道就不配擁有名字嗎

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>'

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

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