灵活运用docker日志文件大小快速排查异常容器

25,653次阅读
没有评论

共计 1104 个字符,预计需要花费 3 分钟才能阅读完成。

概述

由于我在一台服务器上使用 docker 运行了多个容器,而容器也开启了错误日志与重启应用机制,这导致如果是发生重启应用无法解决问题的事故时,docker 的日志会一直增大,从而占用了磁盘空间,且由于容器的本身状态是一直运行的,只是应用程序的问题,无法通过容器状态快速定位具体是哪里的问题,于是利用了 docker 日志大小来快速定位问题。

1. 确定 docker 日志储存的位置

使用下面的命令,可以查看日志储存的位置(实际上也就是容器的储存目录)

docker info

找到如下图所示信息,其中 Docker Root Dir 后跟的就是储存的目录

灵活运用 docker 日志文件大小快速排查异常容器

2. 排序

find /var/lib/docker/containers/ -name "*-json.log" -exec ls -lh {} ; | sort -k 5 -n -r

这条命令的组成部分解释如下:

  • find /var/lib/docker/containers/:在 /var/lib/docker/containers/ 目录下查找文件。
  • -name“-json.log”:查找文件名匹配-json.log 的文件。
  • -exec ls -lh {} ;:对找到的每个文件执行 ls -lh 命令,ls -lh 用于以易读的格式显示文件详细信息(- l 表示长列表格式,- h 表示以人类可读的格式显示大小)。
  • sort -k 5 -n -r:对 ls -lh 命令的输出结果进行排序。-k 5 表示按照第 5 列(文件大小)排序,- n 表示数字排序,- r 表示逆序(从大到小)。

执行后结果如下图,其中红色的这个文件可以看到文件异常的大,说明大概率是它的问题,只需要记住 1d5d8.... 文件容器的 id 开头字母几个即可

灵活运用 docker 日志文件大小快速排查异常容器

注意 : 因为我习惯将大小格式化显示,这里排序是按照数字排的,需要按单位区分大小,如果你想让最大的文件排在前面,只需要去掉 -exec ls -lh {} ; 中的 h 即可。

3. 确定容器

# 推荐方法: 输入后记住的容器 id 前几个字母后,按 tab 可以自动补全
docker ps -f id=1d5d8

# 备用方法: 也可以只输入 docker ps,然后一个个去根据 id 查看是哪个容器
docker ps

4. 打印容器日志,查看具体的错误日志信息

# 这里的 100 是指显示最近的 100 条错误日志  -f 是监听变化持续输出
docker logs 容器名称或容器 id  --tail 100 -f

根据日志信息排查解决错误即可

5. 清理旧的错误日志

  • 可以直接删除在第 2 步中确定的日志文件
  • 如果确定其他容器无误,容器日志都可以清理,你可以查看文章后面的推荐阅读内容

#推荐阅读

灵活运用 docker 日志文件大小快速排查异常容器

Docker 容器日志是容器运行时产生的输出信息,包括标准输出 …

标签:docker
linux

文章来源: 灵活运用 docker 日志文件大小快速排查异常容器

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-06-01发表,共计1104字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)