【发布时间】:2019-10-16 07:53:29
【问题描述】:
我在谷歌云上有一个基本服务器,它每 30 分钟通过 cron 运行一次 docker 容器。我注意到 docker 命令停止工作,并且出现错误提示
docker: Error response from daemon: no space left on device.
然后我注意到,即使我尝试在 bash 中通过键入 cd path/ 并点击 tab 来自动完成时,我也会收到此错误。我发现存储可能有问题,所以我尝试了df -h,它显示了这个:
Filesystem Size Used Avail Use% Mounted on
udev 860M 0 860M 0% /dev
tmpfs 175M 19M 157M 11% /run
/dev/sda1 9.7G 9.7G 0 100% /
tmpfs 871M 0 871M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 871M 0 871M 0% /sys/fs/cgroup
tmpfs 175M 0 175M 0% /run/user/1001
正如您所见,/dev/sda1 出于某种原因已 100% 满。为什么会发生这种情况,我该如何解决?
我注意到有几千个退出的 docker 容器,所以我用这个命令删除了它:
docker rm -v $(docker ps -a -q -f status=exited)
现在存储使用率为 61%,仍然太高。
【问题讨论】:
-
常见原因是
/var/log中的一些日志泛滥并不总是如此,但更好的是您可以尝试使用find /var -printf '%s %p\n'| sort -nr | head -10来查看哪些是占用磁盘最多的前几个文件。如果它在/var/log中,那么您需要检查哪个应用程序正在淹没日志并修复该应用程序。运行这个 FOR/var,/home -
@ps 该命令已经运行了 5 分钟以上。我怀疑这可能是问题所在。有没有办法绕过这个命令?
-
您可以执行
ctrl + c或从其他终端kill执行pid的find命令。现在您必须手动可视化文件的大小。 -
也是另一个常见的情况,试着回忆一下最近是否有人向容器进行了一些文件传输并保持原样?
-
@ps 容器仅由 cron 自动运行。除了我之外,没有其他人可以访问服务器。我应该如何可视化哪些文件夹正在占用空间?
标签: docker ubuntu cron ubuntu-16.04