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 ‘’

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值