乐趣区

关于java:Docker这些nonenone的镜像难道就不配拥有名字吗

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

欢送关注微信公众号 <南瓜慢说>,将继续为你更新 …

多读书,多分享;多写作,多整顿。

退出移动版