![fc9e1212767bc6039594e16f14e5552a.png](https://i-blog.csdnimg.cn/blog_migrate/01c0a4cd44db4d740c27b5b55cbdbbfb.jpeg)
有时候docker用着用着,发现突然容器挂了,怎么启动也起不来.
df -h 一看空间,我去,,都只剩20k了.
回头一想,不对啊,我的docker镜像并不大,也没运行多少数据,怎么会把磁盘给占满了呢.
docker images
![653c34abff95af0e378d82013931ef18.png](https://i-blog.csdnimg.cn/blog_migrate/4ef8acdb5a71d4e7a715d84cb698698c.png)
计算了一下,还不到2个GB,不至于把我这虚拟机给占满.
并且,image里看到的空间只会比实际空间小才对,因为Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。
继续执行 docker system df
查看镜像、容器、数据卷所占用的空间
![8503933c709fa69b10cac2c816bdf5cf.png](https://i-blog.csdnimg.cn/blog_migrate/2bcfc33839b45dd83f14a10716ba4d77.png)
哎?怎么有个可回收空间.
从上图看出,images一共是2.17GB,其中有391MB的可回收空间
Local Volumes有734MB的可回收空间.
于是执行
docker system prune
![3a913421f2b6bb9171d62bbb44f16e98.png](https://i-blog.csdnimg.cn/blog_migrate/58d1f9b0bf947558eb9a64bc57d34d54.png)
它提示我这么做会删掉所有已停止的容器容器没有用到的网络资源所有的虚悬镜像缓存数据
执行完,结果提示删除了0B
看来我没有虚悬镜像,也没有停掉的容器
镜像既没有仓库名,也没有标签,均为 <none>
,就是虚悬镜像
重新看这张图找到了问题 :
![8503933c709fa69b10cac2c816bdf5cf.png](https://i-blog.csdnimg.cn/blog_migrate/2bcfc33839b45dd83f14a10716ba4d77.png)
这里显示我有5个images,但是活着的只有4个
我有7个磁盘占用卷,但是活着的只有4个
执行docker system df -v
![c29d905c2f655882960057d21a8d74f2.png](https://i-blog.csdnimg.cn/blog_migrate/f14741153e520717fba1d4805c8c801c.jpeg)
没错,有个ftp的镜像我没有使用,算是个废弃image了,赶紧删掉
继续往下看
![37d9e0de45db0e10ac2200a731a030d6.png](https://i-blog.csdnimg.cn/blog_migrate/3dece19e45584efa2adfa556f8534fcf.jpeg)
终于找到这三个没用的卷了
其实有个命令更便捷docker volume ls -qf dangling=true
这样会找出这些虚悬的卷
然后将他们删除
docker volume rm $(docker volume ls -qf dangling=true)
好了,空间就释放出来啦
![d7f6ee4d6a23fcbac8d3d068371834d1.png](https://i-blog.csdnimg.cn/blog_migrate/f8095d3ff2158d014d4abd74558b07a4.png)