巨大的 docker 日志文件,把磁盘占满了

文章目录

    服务器的剩余空间正以每天 2G 的速度在减少。。。慌了,晚上看了一下

    找到哪个目录占用空间

    排除几个挂载目录:

    ncdu --exclude /mnt --exclude /var/www/html
    

    没想到最大的文件是一个 docker 日志文件:

    /var/lib/docker/containers/b0d200e0635bcdb9fa7975e9b3968737de904608121fdd817e75dca668135be5/b0d200e0635bcdb9fa7975e9b3968737de904608121fdd817e75dca668135be5-json.log
    20.7 GiB
    

    找到这个日志所属的容器

    # docker ps -a | grep b0d200e0635b
    b0d200e0635b   docker_compose_magento2-phpfpm82   "docker-php-entrypoi…"   16 months ago   Up 7 days 
    

    清空日志

    # 将日志文件清空为 0 字节(注意路径一定要包含这个具体的容器 ID)
    > /var/lib/docker/containers/b0d200e0635bcdb9fa7975e9b3968737de904608121fdd817e75dca668135be5/b0d200e0635bcdb9fa7975e9b3968737de904608121fdd817e75dca668135be5-json.log
    

    限制 docker 日志文件大小

    修改 /etc/docker/daemon.json(全局生效)

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

    或者加个 crontab 定时任务

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

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式