问题
在docker build 的过程中会出现中间镜像。中间镜像不一定会自动删除。会占用存储空间
可以通过以下命令查找悬空的镜像
docker images -f dangling=true
docker images更多用法可以看我的这篇博客
https://blog.csdn.net/petrel2015/article/details/120450308
积少成多,悬空镜像还是很占用空间的。具体占用系统哪块空间可以使用以下命令
docker image inspect <IMAGE_ID>
在GraphDriver中间,显示的就是在服务器中存储在哪里。可以通过修改data-root来更换位置,详见这篇博客
解决
情况悬空镜像可以通过以下命令来清楚
docker rmi $(docker images -f "dangling=true" -q)
也可以通过以下命令来删除。
docker image prune
但是如果加上-a会有一个问题,按照官方解释加上-a不仅会删除悬空镜像,还会删除未使用的镜像。
比如说我下载了某个镜像A,但是没有生成容器呢,或者容器已经删除了,这时这个镜像A就叫做未使用的镜像。
可以参考:
https://stackoverflow.com/questions/45142528/what-is-a-dangling-image-and-what-is-an-unused-image
https://stackoverflow.com/questions/57918513/what-are-dangling-images-in-docker-how-they-created-how-to-remove-them
删除过程中可能出现以下问题
Error response from daemon: conflict: unable to delete bcd6c489bc72 (must be forced) - image is being used by stopped container e34ee987580c
代表有容器正在使用,通过以下命令查看是哪个容器
docker ps -a |grep e34ee987580c
通过输出可以知道这个容器已经退出了,并且红框里这个命名规则是docker自动生成的,是一个“比较奇怪的组合”
可以放心删除
docker rm e34ee987580c
清理之后就可以删除悬空镜像了