docker查询日志并输出到文件的方法
作者:weixin_40877388
docker的运行的时候我们喜欢采用 -d 的命令来启动docker容器,这就导致了一个问题,无法直接看到docker运行日志,只能去后台进去找到日志文件查看,下面这篇文章主要给大家介绍了关于docker查询日志并输出到文件的相关资料,需要的朋友可以参考下
想查询一下docker容器内服务的log,但是因为log太多,想自定义筛选一下。
1、导出全部的log到文件
docker logs dockerId >>log.txt
2、按照时间导出log信息
但是全部的log太多,我想按照时间进行查询,这就用到了--since参数
--since参数的含义是,显示某个时间点后的log信息,也可以是相对于现在多长时间的log信息
显示某个时间点后的log信息。下面命令,查询的是2023年4月28日之后的log信息
docker logs --since="2023-04-28" 容器id >> file.log
也可以是日期+时间或者时间戳
docker logs --since="2023-04-28 00:00:00" 容器id >>file.log docker logs --since="1682665239" 容器id >>file.log
相对于现在多长时间的log信息。下面的命令,查询的是过去10分钟的log信息
docker logs --since 10m 容器id >>file.log
还可以配合着--until参数,查询某个时间段内的log信息
docker logs --since="2023-04-28T00:00:00" --until "2023-04-28T12:00:00" 容器id >>file.log
3、按照log中可能包含的字符串,导出log信息
docker logs 容器id |grep '处理失败' >> file.log
但是上面的检索我们没办法定位报错信息的上下文可以用-A -B -C匹配
docker logs 容器id | grep -A 10 '处理失败' # 打印匹配行的后10行 docker logs 容器id | grep -B 10 '处理失败' # 打印匹配行的前10行 docker logs 容器id | grep -C 10 '处理失败' # 打印匹配行的前后10行
docker logs 的一些参数,以及参数的含义
运行:docker logs --help 命令
Options: --details Show extra details provided to logs -f, --follow Follow log output --since string Show logs since timestamp (e.g. "2013-01-02T13:23:37Z") or relative (e.g. "42m" for 42 minutes) -n, --tail string Number of lines to show from the end of the logs (default "all") -t, --timestamps Show timestamps --until string Show logs before a timestamp (e.g. "2013-01-02T13:23:37Z") or relative (e.g. "42m" for 42 minutes)
含义:
Options: --details 显示提供给日志的额外详细信息 -f, --follow 监控日志输出 --since string 显示自时间戳之后的日志(例如“2013-01-02T13:23:37Z”)或相关日志(例如“42m”42分钟) -n, --tail string 从日志末尾开始显示的行数(默认为“全部”) -t, --timestamps 显示时间戳 --until string 在时间戳(例如“2013-01-02T13:23:37Z”)或相对时间戳(例如“42m”42分钟)之前显示日志
总结
到此这篇关于docker查询日志并输出到文件的文章就介绍到这了,更多相关docker查询日志并输出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!