1、输入命令:sudo du -sh /*
这个命令可以查看到所有文件内存
我们可以看到占用内存最多的是var,这基本就可以断定是因为Docker导致的内存爆满。
2、输入命令:sudo bash
因为权限的问题,用超级管理员打开新的shell会话,这样才可以对Docker的日志进行删除。
3、输入命令:cd /var/lib/docker/containers/
进入到Docker的目录
4、输入命令:sudo du -sh /var/lib/docker/containers/*/*-json.log | sort -rh | head -n 10
这个命令可以查看占用内存数据最多的10条
5、输入命令:sudo rm /var/lib/docker/containers/0a1f024c317199e1d1a9d45623a87691a3be98107f958a92a818e0a1f2f73a4e/0a1f024c317199e1d1a9d45623a87691a3be98107f958a92a818e0a1f2f73a4e-json.log
使用这条命令,我们将一些占用内存较大的日志删除掉
6、输入命令:sudo du -sh /var/lib/docker/containers/*/*-json.log | sort -rh | head -n 10
再检查一下,是不是已经将内存较大的日志删除了,发现已经删掉了
7、为了避免以后Docker出现这样的情况,我们可以在yml中添加这样的配置
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
这样可以确保每个日志文件不超过 50 MB,并且最多只保留 3 个日志文件(总共 150 MB),从而有效控制日志文件的存储空间。