一文教你彻底解决Docker日志膨胀

 更新时间:2025年05月06日 15:48:48   作者:写bug写bug  
这篇文章主要为大家详细介绍了如何快速检查,清理 Docker 日志,并设置日志大小限制以防止未来日志失控,感兴趣的小伙伴可以跟随小编一起学习一下

最近,我发现一台服务器的磁盘空间即将耗尽。经过排查,发现某个 Docker 容器在一年内生成了14 GB 的日志文件。为避免类似问题,本文将指导你如何快速检查、清理 Docker 日志,并设置日志大小限制以防止未来日志失控。

重启容器(如服务器重启或手动执行 systemctl restart docker)不会清除日志,日志文件会持续累积。

重建容器(删除并重新创建容器)才会重置日志。

检查 Docker 日志大小

默认日志路径:

/var/lib/docker/containers/<容器ID>/<容器ID>-json.log

使用以下命令按大小排序查看所有日志文件

find /var/lib/docker/containers/ -name "*-json.log" | xargs du -h | sort -hr

示例输出:

5.9G /var/lib/docker/containers/d2e92.../d2e92...-json.log
4.9G /var/lib/docker/containers/ec7a4.../ec7a4...-json.log

根据容器 ID 查找容器名称

使用docker inspect命令:

docker inspect --format='{{.Name}}' <容器ID>

示例输出:

/php-fpm-valente

(注意:输出结果会以斜杠开头,实际容器名为php-fpm-valente

清理 Docker 日志

清理单个日志文件:``` truncate -s 0 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log

清理所有日志文件(谨慎使用):``` truncate -s 0 /var/lib/docker/containers//-json.log

设置日志大小限制

1.编辑 Docker 守护进程配置文件/etc/docker/daemon.json(若不存在则新建):

sudo nano /etc/docker/daemon.json

2.添加以下内容(限制单个日志文件为 10MB,保留最多 3 个归档文件):

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

3.重启 Docker 服务以生效:

sudo systemctl restart docker

**注意**:此配置仅对新创建的容器生效...

验证配置

使用以下命令检查容器的日志配置:

docker inspect <容器名称> | grep -A 4 LogConfig

示例输出:

"LogConfig": {
    "Type": "json-file",
    "Config": {
        "max-file": "3",
        "max-size": "10m"
    }
}

总结

  • 定期检查日志大小,避免磁盘空间耗尽。
  • 通过daemon.json配置日志轮转,限制日志文件大小。
  • 清理日志时优先使用truncate,避免直接删除文件导致容器异常。

遵循以上实践,可有效管理 Docker 日志,提升服务器资源利用率和稳定性。

到此这篇关于一文教你彻底解决Docker日志膨胀的文章就介绍到这了,更多相关Docker解决日志膨胀内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解使用Dockerfile创建带Apache服务的CentOS Docker镜像

    详解使用Dockerfile创建带Apache服务的CentOS Docker镜像

    本篇文章主要介绍了使用Dockerfile创建带Apache服务的CentOS Docker镜像,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Docker创建MySQL的讲解

    Docker创建MySQL的讲解

    今天小编就为大家分享一篇关于Docker创建MySQL的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Docker 下MySQL数据库的备份和恢复的操作方法

    Docker 下MySQL数据库的备份和恢复的操作方法

    这篇文章主要介绍了Docker 下MySQL数据库的备份和恢复操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • docker容器中文乱码的解决方法

    docker容器中文乱码的解决方法

    Docker默认不支持中文,在docker中部署Java运行环境,查看日志时都是乱码,下面这篇文章主要给大家介绍了关于docker容器中文乱码的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Docker 部署 Prometheus的安装详细教程

    Docker 部署 Prometheus的安装详细教程

    这篇文章主要介绍了Docker 部署 Prometheus及安装方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 详解docker nginx 容器启动挂载到本地

    详解docker nginx 容器启动挂载到本地

    这篇文章主要介绍了详解docker nginx 容器启动挂载到本地,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Docker和镜像的操作方法

    Docker和镜像的操作方法

    这篇文章主要介绍了Docker和镜像的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 利用docker-compsoe部署前后端分离的项目方法

    利用docker-compsoe部署前后端分离的项目方法

    这篇文章主要介绍了利用docker-compsoe部署前后端分离的项目方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 使用Docker部署Nacos并配置MySQL数据源的详细步骤

    使用Docker部署Nacos并配置MySQL数据源的详细步骤

    Nacos是阿里巴巴开源的服务发现、配置管理和服务管理平台,它提供了注册中心和配置中心的功能,能够轻松地管理微服务的注册与发现,以及动态配置的管理,这篇文章主要给大家介绍了关于使用Docker部署Nacos并配置MySQL数据源的超详细步骤,需要的朋友可以参考下
    2024-05-05
  • docker-swarm之使用Docker secret管理敏感数据

    docker-swarm之使用Docker secret管理敏感数据

    就Docker Swarm集群服务而言,secret 是块状数据,例如密码、SSH私钥、SSL证书或其他不应通过网络传输或未加密存储在Dockerfile或应用程序源代码中的数据,我们可以使用Docker secret 集中管理这些数据,所以接下来就带大家了解一下如何使用Docker secret 管理敏感数据
    2023-08-08

最新评论