docker logs 查找日志常用命令

2024-03-29 12:20

本文主要是介绍docker logs 查找日志常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

docker logs 是什么

docker logs 是 Docker 命令行工具提供的一个命令,用于查看容器的日志输出。它可以显示容器在运行过程中生成的标准输出(stdout)和标准错误输出(stderr),帮助用户诊断容器的行为和排查问题。

docker logs 作用

  1. 故障排除:容器在运行过程中可能会发生各种问题,如错误、异常或崩溃。使用 docker logs 可以查看容器的日志输出,从中获取关于问题发生的线索,帮助诊断和解决故障。
  2. 监控和日志分析:通过分析容器的日志,可以了解容器的运行状态、性能指标和行为模式。这对于监控容器的健康状况、性能调优和故障预测都非常重要。
  3. 应用程序调试:当容器中的应用程序出现 bug 或异常行为时,docker logs 可以提供应用程序输出的详细日志。这些日志有助于开发人员定位和修复问题,并进行应用程序调试。
  4. 日志记录和审计:通过将容器的日志输出到中央日志收集系统,可以实现日志的集中存储和管理。这样可以更方便地进行日志分析、报告生成、安全审计和合规性检查。
  5. 安全分析:容器的日志可以提供有关容器和应用程序的安全相关信息,如潜在的攻击行为、异常访问模式和安全事件。利用 docker logs 可以监视容器的日志,及时发现和响应安全问题。

官方文档

链接地址:https://docs.docker.com/reference/cli/docker/container/logs/

里面有详细的记录

img

常用命令

帮助命令 --help

在命令行中运行 docker logs --help 时,它会显示有关 docker logs 命令的帮助信息,包括命令的语法、可用选项以及它们的说明。这个帮助信息可以帮助你理解和正确使用 docker logs 命令。

docker logs --help

img

日志详情 --details

显示全部的日志详情

使用 --details 选项后,docker logs 命令会在输出日志消息时包含以下元数据信息:

  1. 容器名称或 ID:显示生成日志消息的容器的名称或 ID。
  2. 时间戳:显示日志消息生成的时间戳。
  3. 标签(标准输出和标准错误):区分标准输出(stdout)和标准错误(stderr)的标签,以便更清楚地识别消息的来源。

docker logs 默认就是 --details

docker logs --details 32ed2147d371
docker logs 32ed2147d371

img

img

最后n行数据 -n --tail

–tail 是 Docker Logs 命令的一个选项,用于限制显示容器日志的行数。通过指定 --tail 后面的数字参数,你可以只显示最后几行的日志内容。

-n和–tail效果一样

docker logs --tail 3 29e77cf8e4af
docker logs -n 3 29e77cf8e4af

img

img

实时日志输出 -f --follow

–follow 是 Docker Logs 命令的一个选项,用于实时跟踪容器的日志输出。当你在命令行中执行 docker logs --follow(或简写为 docker logs -f)时,它将以实时方式显示容器的日志,并持续输出新的日志内容。

docker logs --follow 29e77cf8e4af
docker logs -f 29e77cf8e4af

img

img

img

img

显示日志时间戳 -t

-t 是 Docker Logs 命令的一个选项,用于在日志输出中包含时间戳。当你在命令行中执行 docker logs -t 时,它会在每条日志消息前显示时间戳信息。

docker logs --tail 3  --timestamps 29e77cf8e4af
docker logs -n 3  -t 29e77cf8e4af 

img

img

显示从某个时刻以来的日志 -since

–since 是 Docker Logs 命令的一个选项,用于限制显示容器日志的起始时间。通过指定 --since 后面的时间参数,你可以只显示从指定时间点后生成的日志内容。

注意,时间参数可以使用多种格式,如 ISO 8601(例如:“2022-01-01T00:00:00”)、UNIX 时间戳、相对时间(例如:“1h ago” 表示一小时前)等。

// 查看从2024-03-28T11:43:00.015后的日志
docker logs --since='2024-03-28T11:43:00.015' 29e77cf8e4af
// 查看最近5分钟的日志
docker logs --since='5m' 29e77cf8e4af

img

img

显示指定时刻之前的日志 --until

–until 是 Docker Logs 命令的一个选项,用于限制显示容器日志的结束时间。通过指定 --until 后面的时间参数,你可以只显示在指定时间点之前生成的日志内容

注意,时间参数可以使用多种格式,如 ISO 8601(例如:“2022-01-01T00:00:00”)、UNIX 时间戳、相对时间(例如:“1h ago” 表示一小时前)等。

显示到2024-03-28 11:25:55为止的日志
docker logs --until='2024-03-28 11:25:55' 29e77cf8e4af
显示5分钟前的日志
docker logs --until='5m' 29e77cf8e4af

img

img

img

使用grep过滤日志

docker logs 命令本身并不支持直接使用 grep 进行过滤。然而,你可以通过结合使用管道(|)和 grep 命令来在 Docker 日志中进行文本匹配和过滤。

docker logs 29e77cf8e4af | grep '2024-03-28 11:25:58'
docker logs 29e77cf8e4af | grep 2024 | grep 03 | grep 184

img

img

 # 打印匹配行的前后3行
docker logs 29e77cf8e4af | grep -3 '2024-03-28 11:25:58.184' # 打印匹配行的前后3行
docker logs 29e77cf8e4af | grep -C 3 '2024-03-28 11:25:58.184' 
# 打印匹配行的前后3行
docker logs 29e77cf8e4af | grep -A 3 -B 3 '2024-03-28 11:25:58.184'  # 打印匹配行的后3行
docker logs 29e77cf8e4af | grep -A 3 '2024-03-28 11:25:58.184' # 打印匹配行的前3行
docker logs 29e77cf8e4af | grep -B 3 '2024-03-28 11:25:58.184' 

# 打印匹配行的前后3行

docker logs 29e77cf8e4af | grep -3 ‘2024-03-28 11:25:58.184’

img

# 打印匹配行的前后3行

docker logs 29e77cf8e4af | grep -C 3 ‘2024-03-28 11:25:58.184’

img

# 打印匹配行的前后3行

docker logs 29e77cf8e4af | grep -A 3 -B 3 ‘2024-03-28 11:25:58.184’

img

# 打印匹配行的后3行

docker logs 29e77cf8e4af | grep -A 3 ‘2024-03-28 11:25:58.184’

img

# 打印匹配行的前3行

docker logs 29e77cf8e4af | grep -B 3 ‘2024-03-28 11:25:58.184’

img

常用命令

# 查询指定时间范围内的日志信息
# 注意一定要按docker logs --help 中的说明的时间格式,格式是:2024-03-28T11:43:00.015这种
docker logs --since="2024-03-28T11:43:00.015" --until="2024-03-28T11:44:00.015" 29e77cf8e4af# 查询最近30分钟内的日志
docker logs --since 30m 29e77cf8e4af# 查询最近30分钟前的日志
docker logs --until 30m 29e77cf8e4af# 实时查看最近的100条日志信息(很常用)
docker logs -f --tail 100 29e77cf8e4af# 从日志中查找指定的内容(可以有多个grep)
docker logs 29e77cf8e4af | grep '关键字'# 从日志中查找指定的内容 -> 多个grep
先查找出包含2024的,再从中查找包含03,最后再查找包含184的
docker logs 29e77cf8e4af | grep 2024 | grep 03 | grep 184# 查询指定时间范围内的日志,并且包含特定的字符
docker logs --since="2024-03-28T13:00:00" --until="2024-03-28T14:00:00" 29e77cf8e4af |grep -30  '关键字'

这篇关于docker logs 查找日志常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/858577

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

SpringBoot如何使用TraceId日志链路追踪

《SpringBoot如何使用TraceId日志链路追踪》文章介绍了如何使用TraceId进行日志链路追踪,通过在日志中添加TraceId关键字,可以将同一次业务调用链上的日志串起来,本文通过实例代码... 目录项目场景:实现步骤1、pom.XML 依赖2、整合logback,打印日志,logback-sp

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke