这个镜像既没有仓库名,也没有标签,均为 <none>
<none> <none> 00285df0df87 5 days ago 342 MB
这个镜像原本是有镜像名和标签的,原来为 mongo:3.2,随着官方镜像维护,发布了新版本后,重新 docker pull mongo:3.2 时,mongo:3.2 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 <none>
。除了 docker pull 可能导致这种情况,docker build 也同样可以导致这种现象。由于新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none>
的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:
docker image ls -f dangling=true
一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除。
docker image prune
一般比较稳妥的执行场景是,我们基于容器的最新服务正在运行,此时执行 docker image prune 是肯定不会删除正在使用的镜像的,因为正在使用的镜像不会被删除
如果我们想同时删除虚悬镜像和不再使用的镜像(即当前没有容器使用这个镜像),可以使用下面的命令
docker image prune --all