Docker日志:它们是什么以及如何使用(附示例)
如果在Docker容器中运行的应用程序始终表现正确,那么生活会简单得多。当事情不可避免地开始出错时,您需要诊断信息来确定如何出错以及为什么出错。
如果您是系统管理员并负责构建和管理容器化应用程序,docker日志记录对您来说是最重要的。处理日志是帮助揭示错误、帮助调试和优化应用程序性能的最佳方法之一。
相关:什么是Docker容器:初学者入门指南
因此,让我们深入了解Docker日志及其日志文件。
Docker日志是什么
首先,您需要了解日志是如何生成的。
简而言之
Docker日志是运行容器的控制台输出
。它们提供
标准输出
(标准输出)和
标准错误
(标准错误)在容器内运行的进程流。
在一个容器里,Docker看着
标准输出
和
标准错误
并收集流的输出,流是容器日志的来源。
相关:在Ubuntu上安装Docker:分步指南
在Docker中登录与在其他地方登录不同。在Docker中,所有写入的内容
标准输出
和
标准错误
流被隐式地发送到日志驱动程序,该驱动程序提供了访问这些流并将日志发送到文件的机制。
Docker日志的默认驱动程序是“json文件”,它以json格式将日志写入Docker主机上的本地文件。

容器中存储的任何日志在终止或关闭时都将被删除。
下面的示例显示了使用JSON文件驱动程序创建的JSON日志:
{
日志
:
“正在为用户webdav添加密码\n”
,
流动
:
“stderr”
,
时间
:
“2021-08-0115:58:05.329724917Z”
}
代码语言:
JSON/JON-带注释
(
json
)
您可以使用以下命令查找当前默认的日志记录驱动程序:
docker信息--格式
“{{.LoggingDriver}}”
代码语言:
JavaScript
(
javascript
)
json文件
Docker日志存储在哪里
如果使用默认的日志格式JSON,则可以在
/var/lib/docker/contences/
目录。
/var/lib/docker/contences/
<
容器id
>
/
<
容器id
>
-json.log
代码语言:
HTML,XML
(
xml
)
在上面显示的路径中
是吗
身份证件
运行容器的。如果你不确定
身份证件
与哪个容器相关,可以运行
码头集装箱ls
命令列出所有正在运行的容器。
码头集装箱ls
CONTAINER ID IMAGE命令创建的状态端口名称
99e9
b6f4b1a3 jbbodart/alpine nginx webdav
“/bin/sh-c'/entryp…”
51
分钟前向上
51
分钟
0
.0
.0
:
80
->
80
/tcp,:::
80
->
80
/tcp-webdav
代码语言:
JavaScript
(
javascript
)
如何查看Docker日志
假设您正在运行一个容器,并希望访问该容器的Docker日志。你怎样才能完成这项任务?
首先,可以使用以下命令检查当前运行的容器:
码头工人
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
容器ls
代码语言:
HTML,XML
(
xml
)
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
CONTAINER ID IMAGE命令创建的状态端口名称
99e9b6f4b1a3 jbbodart/alpine nginx webdav“/bin/sh-c'/entryp…”58分钟前向上58分钟0.0.0.0:80->80/tcp,::80->80/tcp webdav
代码语言:
HTML,XML
(
xml
)
此命令打印正在运行的容器的列表。在我们的情况下,最重要的参数是
容器ID
,我们将在下一步中使用。
现在您确定您的容器正在运行,让我们使用
容器ID
查看其所有日志。
查看Docker日志
要查询容器日志,请使用
码头工人日志
命令
它是一个显示运行中的容器所记录的所有信息的命令。与
docker日志CONTAINER_ID
,您可以看到由唯一ID标识的特定容器广播的所有日志。
码头工人日志99e9b6f4b1a3
172.17
.0
1.
-webdav[
01
八月
2021
:
18
:
38
:
39
+
0000
]
“获取/favicon.ico HTTP/1.1”
404
555
"http://localhost/"
Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/92.4415.107 Safari/537.36
2021
/
08
/
01
18
:
39
:
09
[信息]
10
#10:*3客户端172.17.0.1关闭保活连接
172.17
.0
1.
-webdav[
01
八月
2021
:
18
:
39
:
09
+
0000
]
“PUT/docker-logs.png HTTP/1.1”
201
25
"-"
“卷曲/7.78.0”
代码语言:
PHP
(
php
)
如何遵循容器日志
尽管这将向您显示日志,但它不允许您查看连续的日志输出。相反,使用
f
标志将跟随Docker容器日志。
docker日志-f 99e9b6f4b1a3
仅显示最新的行
在某些情况下,您只想快速验证容器的最新10个日志行。您可以使用
尾
选项指定要查看的日志数。
docker日志-尾10
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
99e9b6f4b1a3
代码语言:
HTML,XML
(
xml
)
查看自特定日期以来的日志
当您检查Docker日志时,您通常希望将输出限制在给定的行数内,而不是被信息淹没。
如果您想查看从特定时间点到现在的日志
自从
选项有助于完成此任务。
例如,要查看最后20分钟的容器日志,您需要写道:
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
码头工人日志——20米以来
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
99e9b6f4b1a3
代码语言:
HTML,XML
(
xml
)
您也可以编写日期格式,只要它是以ISO格式提供的:
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
docker日志——自2021-07-19T10:00:00
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
99e9b6f4b1a3
代码语言:
HTML,XML
(
xml
)
查看特定日期之前的日志
要查看特定日期之前的日志,请使用
直到
带有日期或持续时间的选项。
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
docker日志--直到
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
20米
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
99e9b6f4b1a3
代码语言:
HTML,XML
(
xml
)
或者,您也可以像以前一样为提供日期格式
自从
选项
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
docker日志--直到
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
2021-07-19T10:00
<
元
http当量
=
“内容类型”
所容纳之物
=
“text/html;charset=utf-8”
>
99e9b6f4b1a3
代码语言:
HTML,XML
(
xml
)
结论
Docker日志可以帮助您更快地调试和解决问题。在本教程中,您了解了它们是什么以及如何检查它们,并使用选项对它们进行监视。
如果您有任何问题或反馈,请随时留言。
OpenSSH宣布计划逐步淘汰DSA密钥
为了加强数字安全,OpenSSH宣布计划逐步取消对DSA密钥的支持,这一决定是基于算法的固有弱点和更安全的替代方案的发展。但首先,让我们进一步了解DSA对我们的读者来说是什么。 DSA及其局限性 DSA代表数字签名算法,是一种用于数字签名和身份验证的加密算法,也是SSHv2协议中的关键组件。然而,它的局限性早已被认识到,特别是它对160位私钥的限制和对SHA1摘要的依赖。 这些限制使其安全级别在对
如何将Chromebook的销量提高到超过MAX
如果你的Chromebook的音频太安静,很难挤出或跟上Zoom会议。令人高兴的是,有一个解决办法,将使你的梦想的音量水平成为现实。以下是您如何给您的Chromebook一个高于最大的音量提升。 Chromebook销量增长怎么可能呢? Chromebook上的最大音量设置应该是上限。那么,如何提高体积超过这个最大值呢?从正确的软件开始。 虽然ChromeOS可能会限制扬声器可以达到的最大音量,但
如何生成SSH密钥对(附示例)
密码身份验证是大多数SSH客户端使用远程服务器进行身份验证的默认方法,但它存在潜在的安全漏洞,如暴力登录尝试。 密码身份验证的另一种选择是使用SSH密钥对进行身份验证,在该对中生成SSH密钥并将其存储在计算机上。 SSH密钥是在不涉及密码的情况下识别受信任计算机的一种简单方法。它们被网络和系统管理员广泛用于远程控制服务器。 因此,SSH密钥身份验证比密码身份验证更安全,而且可以说更方便。 核心概念
完成:一个漂亮的GNOME桌面待办事项列表应用程序
待办事项应用程序是帮助用户高效管理任务和活动的数字工具。通过提供一种结构化和可访问的方式来跟踪个人和职业义务,他们旨在提高生产力,减轻压力,并确保按时完成重要任务。 Linux用户总是喜欢各种各样的待办事项应用程序,新的选项会定期出现。其中,Done是一个值得注意的选择。 待办事项列表应用程序亮点 Done是用Rust编程语言编写的,它提供了一系列协同功能,确保最终用户获得轻松无缝的体验,在同类应
SQLite数据库浏览器,如何在Linux上安装和使用
SQLite是一个开源的自包含、轻量级的无服务器关系数据库管理系统。它是一个零配置的数据库,这意味着,与其他数据库一样,您不需要在系统中配置它。 相关:MySQL Server的5个最佳免费替换 SQLite DB Browser是一个开源的可视化工具,用于创建、设计和编辑与SQLite兼容的数据库文件。 该软件提供控件和向导,以在舒适的视觉介质中处理各种数据库功能。它在Windows、Linux