最近在准备全栈项目,本想拿以前的项目练练手,一测试,发现有bug。遂修改代码,推到远程仓库,登录服务器,拉代码时,报错,说error: unable to create temporary file: No space left on device,意思是说「无法创建临时文件:设备上没有剩余空间」

纳尼~~

我的小服务器上都没挂什么服务啊,为什么会没内存了

不管怎么样,先查一下

有人也遇到这样的问题:解决Linux出现“cannot create temp file for here-document: No space left on device”的问题

解决方案:

1、df -h 查看硬盘空间

2、top 查看cpu及内存

3、du -h –max-depth=1 /var/log/* 查看/var/log路径下文件的大小

4、du -sh /* 查看哪个目录最大

5、cat /dev/null > /var/log/mongodb/mongod.log 清空mongodb日志文件

使用 df -h 查看硬盘的空间,发现全被/dev/vda1 占据了

查看硬盘空间

而后面又有个 overlay,也是 40G,不明白没关系,继续往后步骤找

第二、三步没啥用,主要是第四步。现在根目录下输入du -sh * ,发现 var 目录占了36个G,不得了

查看根目录下的各文件所占内存

进入 var 目录查询du -sh *,发现 lib 目录占了 35G

var目录下的各文件所占内存

继续进入 lib 目录,查询du -sh *,发现 docker 目录占了 35G。明白了,问题出在 docker 容器上,也许是镜像,也许是容器,所占的内存太大了

那就把没用的镜像和容器删除吧

删到后面发现是启动的 check 酱容器占满了内存,删除了这个容器后,内存就恢复了

删除内存吸盘后的内存

check 酱或许是写入了什么错误日志之类的,导致占满了内存。想想,也就不用

为此,也不去纠结,再说了,这个服务个人感觉并不是很好用,老是报错

学到的东西

主要是 linux 的操作

例如:

  • df -h:查看硬盘空间
  • du -sh *: 查看哪个目录最大