YiMen的站点 忆往昔梦远方

  • 📓各种教程
    • 🎮游戏类
    • 🖥︎云服务器类
    • 🌐网站创建
    • 📙各类硬件使用教程
    • 📘各类软件使用教程
    • 📺流媒体教程
  • 🌏️跨境指南
    • 📶国际esim
    • 🛒购物转运
  • 🏆一起薅羊毛
    • 🗃︎礼品卡类
  • 📰新闻趣事
    • 📺流媒体新闻
  • 🗐全部文章
  • 📑归档
  • 📞联系站长
YiMen的站点
随便写写啦
  1. 首页
  2. 🖥︎云服务器类
  3. 云服务器教程
  4. 正文

解决Docker日志文件占用磁盘过大的问题

2024 年 5 月 9 日 895点热度 0人点赞

  初次使用docker并尝试搭建邮件服务,过了一段时间发现磁盘空间不足,通过df -h指令发现 /var/lib/docker/overlay2/{id}/merged 这个目录占了近20g空间,发现了是日志文件没作出限制记录了19g,网上搜索了一番才找出解决方法。

仅清理的办法

  • 找出日志文件的脚本
    在root文件下创建一个名为 docker_log_size.sh 的文件并编辑输入以下内容
#!/bin/sh 
echo "======== docker containers logs file size ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do  
             ls -lh $log   
        done
  • 给脚本赋权并运行
chmod +x docker_log_size.sh 
./docker_log_size.sh 
  • 清理日志文件的脚本
    在root文件下创建一个名为 clean_docker_log.sh 的文件并编辑输入以下内容
#!/bin/sh 
echo "======== start clean docker containers logs ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  

echo "======== end clean docker containers logs ========"
  • 给脚本赋权并运行
chmod +x clean_docker_log.sh 
./clean_docker_log.sh 

永久解决的方法

  • 全局设置
  • 新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:
# vim /etc/docker/daemon.json  
{
  "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
  ],
  "debug" : true,
  "experimental" : true,
  "storage-driver": "overlay2"
}
{
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"50m","max-file":"1"
    }
}   

max-size=500m,意味着一个容器日志大小上限是500M,

max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

  • 重启docker守护进程
systemctl daemon-reload 
systemctl restart docker 

至此日志文件将会减小,注意切勿手动删除,手动删除会遇到文件删除了但空间并未减小的问题。

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2025 年 4 月 13 日

YiMen

对啥都感兴趣

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2025 YiMen的站点

Theme Kratos Made By Seaton Jiang

辽ICP备2023013463号-1

辽公网安备21040402000177