记录一次服务器磁盘被占满,导致服务无法运行的问题。

执行:docker-compose restart 返回:[3211897] INTERNAL ERROR: cannot create temporary directory!

检查磁盘空间

确保磁盘上有足够的空间。

df -h

显示:

/dev/vda1 197G 197G 0 100% 

这会导致无法创建临时目录,从而导致 docker-compose restart 命令失败。

使用 find 命令查找大于 1GB 的文件:

sudo find / -type f -size +1G -exec ls -lh {} \; | awk '{ print $NF ": " $5 }'

以上命令返回

/proc/kcore: 128T
/root/rummy/docker/mysql/data/rummy/pay_orders.ibd: 1.1G
/var/lib/docker/containers/a7948db55353f5487468b6be8ba740d3bcf3c29b8d4026ccbcce324175b05f9e/a7948db55353f5487468b6be8ba740d3bcf3c29b8d4026ccbcce324175b05f9e-json.log: 184G

问题已经找到,docker的日志文件太大,需要清理。

1、可以通过截断日志文件来释放空间:

sudo truncate -s 0 /var/lib/docker/containers/a7948db55353f5487468b6be8ba740d3bcf3c29b8d4026ccbcce324175b05f9e/a7948db55353f5487468b6be8ba740d3bcf3c29b8d4026ccbcce324175b05f9e-json.log

这条命令的含义是将指定的日志文件清空。

具体来说,命令分为以下几个部分:

sudo:以超级用户(root)权限运行命令。因为操作系统中的一些文件可能需要超级用户权限才能修改。

truncate -s 0:truncate 命令用于调整文件大小。-s 0 参数表示将文件的大小设置为 0 字节,即清空文件内容。

/var/lib/docker/containers/a7948db55353f5487468b6be8ba740d3bcf3c29b8d4026ccbcce324175b05f9e/a7948db55353f5487468b6be8ba740d3bcf3c29b8d4026ccbcce324175b05f9e-json.log:这是要被清空的日志文件的路径。在这个例子中,它是 Docker 容器的日志文件。

通过运行这条命令,可以将 Docker 容器的日志文件清空,从而释放出磁盘空间。不过,这只是暂时清空了文件的内容,新的日志数据会继续写入该文件。要长期控制日志文件的大小,还需要配置 Docker 的日志轮转策略。

2、配置 Docker 日志轮换

配置 Docker 日志轮换来防止日志文件变得过大。编辑或创建 /etc/docker/daemon.json 文件:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

保存文件后,重新启动 Docker 服务:
sudo systemctl restart docker

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值