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日志可以帮助您更快地调试和解决问题。在本教程中,您了解了它们是什么以及如何检查它们,并使用选项对它们进行监视。
如果您有任何问题或反馈,请随时留言。
延伸阅读:
Windows 记事本终于获得自动更正和拼写检查功能
在首次引入 Windows 大约 41 年后,记事本终于更新了自动更正和拼写检查功能。这家科技巨头于今年 3 月推出了拼...
Ubuntu 的 apt 和 apt-get 命令有什么区别?
在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面。apt和apt-get是两...
Ubuntu远程桌面:如何设置和连接
远程桌面是一种允许您远程接管和使用另一台计算机的服务。在Ubuntu中,可以在图形客户端机器上启用它来控制主机。此功能对...
苹果公司在“放开”iPad活动上宣布的4款产品(以及你错过了什么)
利用当天的视频 苹果2024年5月的“放开”活动标志着iPad系列的一个重要里程碑,该公司推出了自成立以来最重大的升级。...
将照片从iPhone传输到iPhone的8种快速方法
已升级到新iPhone,是否要从旧设备中移动所有照片?或者你只是想从别人的iPhone上转移照片?以下是在两部iPhon...