问题:INTERNAL ERROR: cannot create temporary directory及解决方法

服务通过docker部署,平时启动是好好的,突然有一天,更新服务时报错

INTERNAL ERROR: cannot create temporary directory!

查错步骤:

执行 df -h 命令,查看磁盘利用率,发现/dev/mapper/centos-root空间大小为50G,使用率为100%。

解决方法有两种,如下:

方法一:

操作步骤:执行 sudo du -sh * 命令查看具体哪一目录下磁盘使用过高,找到删掉没用的,就不报错了

举例:我的直接问题原因是有一个后台服务,输出的日志没有按log4j规范编写代码,导致打印日志太多,使得并不富裕的服务器磁盘空间雪上加霜迅速被占满了,因为很清楚是哪个服务,所以我找到这个服务的容器id,把这个容器直接删除重建,这样就可以把那些占地方的日志也删掉,再重建服务容器就能腾出空间了。

因为是docker容器问题,所以我的操作:

首先:cd /var/lib/docker/containers

其次,统计当前目录各文件夹大小:du -sh ./*

(查找docker中哪个容器占用资源较大)

 此时可以得到占用最大磁盘空间的容器ID是:333045b75a81d465eed6882a05aafa263d8be0f26819c5582545a5e2d03a7849

如果你想知道这个容器具体是什么,可以使用以下命令查找(后面输入你的容器ID):

docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep "333045b75a81d465eed6882a05aafa263d8be0f26819c5582545a5e2d03a7849"

然后通过:docker rm -f <containerid>   --删除容器

如果容器太大,这个命令执行会很慢,此时可以通过可视化工具直接进入/var/lib/docker/containers目录去手动删除,然后重启docker,最初的问题可以暂时解决

方法二:

linux系统增加根目录磁盘空间操作步骤--VMware 虚拟机扩展空间后续操作

若大家的磁盘空间很小,不能满足日常服务所需,就需要扩展对应的磁盘空间。

附上非常好用的说明步骤:VMware 虚拟机(linux)增加根目录磁盘空间_我成长的地方的技术博客_51CTO博客

在最后,执行扩容多少G后,因文件系统不同,执行命令可能会不同,若按以上博客步骤实行失败,可执行下面这条命令:

xfs_growfs /dev/mapper/centos-root

再执行df -h 可以看到已经扩容成功

补充知识点:

1、查找和删除容器命令

docker ps -aqf name=xxxx(容器名称)  --查找对应容器id

docker rm -f <containerid>   --删除容器

2、(Log4j可以理解为微服务架构中常用的一个记录日志的组件,感兴趣可查看博客:https://blog.csdn.net/u013870094/article/details/79518028?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164724109916780264076207%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164724109916780264076207&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-79518028.pc_search_result_control_group&utm_term=log4j&spm=1018.2226.3001.4187)

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值