Docker 容器占用大量磁盘空间

今日在查看公司本地服务器的时候发现磁盘空间几乎要用完了,调查了一会发现是使用 docker 部署的 gitlab 容器产生了大量的日志文件,文件大约占用了 30G+,gitlab 容器大约运行了 2 年左右。这里记录下查找和解决过程。

介绍几个 Linux 命令

df -h 查看整个磁盘的空间使用情况
du -sh /* 查询某个路径下的数据大小
docker system prune -a    清理 docker 容器
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr  查找"/"目录下所有大于100M的所有文件
echo "" > xxx.log  将 "" 写入到 xxx.log 文件中,从而使该文件大小瞬间变为 0
docker run ...... --log-opt max-size=10m --log-opt max-file=1   对标准输入日志大小与数量进行限制

过程

今日在查看公司本地服务器的时候发现磁盘空间几乎要用完了,于是使用 du -sh /* 对根目录下所有目录计算大小,最后定位到是 /var/lib/docker/containers/{container_id}/ 下存在数据较大的 *-json.log 日志文件,于是使用 echo "" > xxx.log 的方式重置该文件大小。

解决方案

1.用 echo "" > xxx.log 的方式重置该文件大小。
但是这个只是治标不治本的方法,归根结底控制这个 log 文件的生成策略才是上策。

2.新建或修改/etc/docker/daemon.json

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

设置 docker 只生成一个大小最大为 10M 的日志文件。

posted @ 2022-05-03 22:01  LiuChengloong  阅读(2297)  评论(0编辑  收藏  举报