Docker日志占用大量空间排查(docker日志清理)(日志撑爆系统)(日志驱动配置json-file)(--log-driver、--log-opt)/var/lib/docker存储目录介绍

   日期:2024-12-26    作者:jyhgfz 移动:http://oml01z.riyuangf.com/mobile/quote/52911.html

Docker日志占用大量空间排查(docker日志清理)(日志撑爆系统)(日志驱动配置json-file)(--log-driver、--log-opt)/var/lib/docker存储目录介绍

进入java容器看,看不出来

 
 

排查

阿尔格纳威潘三矿深井虚拟机,存储空间被占满了,发现是kykj容器占用得多

这个日志确实大:74G

 
 
 

这可能是spring boot框架连接mysql失败时,不停重连打印日志导致的

Docker容器本身并不提供自动清理日志的功能。Docker日志主要由Docker守护进程负责处理,并存储在宿主机的文件系统中。

Docker 默认使用的日志驱动是 json-file。这种驱动会将容器的标准输出和标准错误输出存储为JSON格式的日志文件。这些日志文件位于宿主机上,通常存放在每个容器的目录下,路径类似于 。

使用 json-file 日志驱动的好处是简单易用,且可以直接通过 命令查看容器的日志输出。但是,这种方式也可能导致日志文件快速增长,尤其是对于日志输出较多的应用,因此需要合理配置日志的最大大小和文件轮换数量,以避免占用过多的磁盘空间。

解决方法:配置docker run日志大小数量限制(日志驱动配置json-file

命令 是在Docker中启动一个新容器的常用命令。以下是命令中各部分的详细解释

  1. - 这是Docker中用于创建并启动新容器的基本命令。

  2. - 这两个选项通常一起使用

    • 或 保持容器的标准输入开启。
    • 或 分配一个伪终端,这使得我们可以与容器进行交互。
  3. - 指定使用 作为日志驱动,这是Docker的默认日志驱动,用于将容器的标准输出和错误输出记录到JSON格式的文件中。

  4. - 设置日志文件的最大大小为10MB。当日志文件达到这个大小时,Docker会自动轮转日志,即关闭当前日志文件,并开启一个新的日志文件继续记录。

  5. - 设置最多保留3个轮转的日志文件。当创建新的日志文件时,如果已经有3个日志文件,最旧的日志文件将被删除。

  6. - 指定Docker镜像的名称,容器将基于此镜像创建。这个名称可能是本地镜像的名称或者是仓库中的镜像名称。

示例

要在你的 Docker 命令中添加日志管理功能,你可以加入 和 选项来控制日志文件的大小和数量。以下是你的命令更新后的版本,设置每个日志文件最大为100MB,并且最多保留3个日志文件

 

在这个命令中

  • 指定日志驱动为 ,这是Docker的默认日志驱动。
  • 设置每个日志文件的最大大小为100MB。
  • 设置最多保留3个日志文件。

这种配置可以有效管理容器的日志文件,避免日志文件过大消耗宿主机的磁盘空间。同时,通过轮转和限制文件数量,保持日志的新鲜度和可管理性。

在14服务器上测试了是可行的,日志大小上限为100MB,上限为3个,不断生成日志,测试发现一旦日志总大小满300MB,就会删除旧的那个,然后日志总大小变成200MB。

在Docker的目录下,有几个重要的子目录,这些目录用于存储Docker运行时的不同数据和文件。这里是各个目录的主要内容和用途

  1. :存储与Docker内容信任相关的数据。内容信任是Docker的安全特性,用于确保镜像未被篡改。

  2. :包含有关Docker网络配置的数据。这些文件用于管理Docker容器间的网络连接。

  3. :存储Docker容器的运行时数据。每个容器会在此目录下有一个对应的子目录,其中包含容器的配置文件、日志、以及一些状态文件。

  4. :如果Docker被配置为使用Swarm模式,该目录会用来存储Swarm模式相关的数据。Swarm是Docker的原生集群管理和编排工具。

  5. :存储Docker卷的数据。Docker卷用于数据持久化和数据共享,允许容器间或主机和容器间共享数据。

  6. :这是Docker使用的存储驱动之一,默认情况下用于管理容器和镜像的层。每个层存储文件的改动,所有层合起来形成完整的文件系统。

  7. :临时文件存储目录,用于存放处理过程中的临时文件。

  8. :存储镜像的元数据。这些元数据包括镜像的配置信息、层的信息等。

  9. :用于存储BuildKit构建器的数据。BuildKit是Docker的一种现代镜像构建工具,优化了构建过程和资源利用。

  10. :存储Docker插件的数据。这些插件可以扩展Docker的功能,如网络、存储卷驱动等。

  11. :如果有配置自定义的容器运行时,其数据会存储在这个目录下。


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号