问题现象

当我在我的ubuntu虚拟机上尝试安装一个软件时,发现安装失败,安装程序提示/var下面没有130MB空间可用。然后我使用df -sh查看结果如下:
搞定ubuntu--vg-root full
但是我很确定,我的虚拟机总共100GB空间,而我并没有往里面塞满100GB的数据。那么究竟是什么把空间占满了呢?

问题定位

一开始,我首先想到的是用du去检查空间被谁占用了,通过du命令,排查到占用空间最大的是/var/lib/docker,在/var/lib/docker目录下可以看到大量人不可读的子目录,像下面这样:
搞定ubuntu--vg-root full
很显然,这些空间的占用跟容器相关,于是通过google查到一篇文章,帮助比较大:https://blog.softwaremill.com/how-to-keep-your-docker-installation-clean-98a74eb7e7b3
在这篇文章的帮助下,首先通过docker system df命令确定磁盘确实是被docker占用了,如下图:
搞定ubuntu--vg-root full
从上图可见,空间基本上被docker volume占用了,但是,我在使用的容器并不多,不应该占用这么大的空间啊!而且,可以看到/var/lib/docker下部分子目录的创建时间还是1年以前,所以一定是一些已经无用的容器曾经使用过的volume没有清理导致的。

问题解决

现在问题找到了,下一步就是如何清理的问题了。
仍然参考上面链接的文章,按照其提示可以通过docker volume rm $(docker volume ls -q)删除卷,删除过程中会提示使用中的卷不会删除,如下图:
搞定ubuntu--vg-root full
待docker volume删除完成后,再次检查容量,却发现空间并没有清理出来多少:
搞定ubuntu--vg-root full
但是,通过观察docker system df的执行结果可以看到,其中有一列提示“RECLAIMABLE”,那么这个RECLAIMABLE代表什么意思呢?在stack overflow上有人提到”RECLAIMABLE is the space consumed by “unused” images (in the meaning of no containers based on those images is running).”,通过docker volume prune可以清理,通过该命令清理之后,再次检查空间:
搞定ubuntu--vg-root full
至此,空间清理完成,问题解决。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-15
  • 2022-12-23
  • 2021-09-12
  • 2021-12-26
  • 2021-09-01
猜你喜欢
  • 2022-12-23
  • 2022-01-25
  • 2022-12-23
  • 2021-04-28
  • 2022-02-25
  • 2022-03-01
相关资源
相似解决方案