0


docker 镜像生成<none>的原因

dockerfile 去构建新的镜像,其构建的镜像同名,之前的镜像就会变成none,被新的镜像所替代,如果构建的文件没有发送改变,则会使用与之相同的镜像,不会生成新的镜像。启用了缓存机制。如果构建的文件有变化的话,就会生成新的镜像,如果镜像库里有重名的镜像,就会将重名的镜像设置为none。占用重名的镜像。并不是所none的镜像就是无用的,如果还有容器引用的话,那还是有用的。毕竟只是把镜像的名字个tag改成了none。之前的容器引用还在,就说明该镜像还是有用的。

还有另一种原因就是强行删除镜像,当该镜像还被容器引用的时,强行删除镜像(docker images rm -f imagename),这时镜像就会变成none。因为还有容器在使用,不能直接删除镜像。要先停止容器,这时还不能正常删除镜像,只能强行删除,但这次强行删除是直接删除了。不会变成none。但是容器还是,还是可以重启容器。

总结:要构建新的镜像,要看有没有和要构建的镜像名字和tag都相同的镜像,如果有,要先删除。要不然会产生none镜像。占用空间。

如果要删除已有的镜像,要先查看是否有容器使用,要先删除容器在删除镜像。

这里的none指的是使用docker images显示的none。不是使用docker images -a显示的none。 使用docker images -a显示的none最好不要动,因为镜像是分层,有些分层是匿名的,所以不要乱删。

这些坏的镜像也叫dangling images,空悬镜像。

3 如何删除dangling images
既然没用,又还占用空间,不如就删掉它。Docker没有自动删除这些镜像的机制,可以通过以下命令删除:

$ docker rmi $(docker images -f “dangling=true” -q)
检查一下,已经没有的镜像了。

$ docker images | grep ‘’

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/qq_46110252/article/details/127448013
版权归原作者 五更钟动 所有, 如有侵权,请联系我们删除。

“docker 镜像生成<none>的原因”的评论:

还没有评论