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日志可以帮助您更快地调试和解决问题。在本教程中,您了解了它们是什么以及如何检查它们,并使用选项对它们进行监视。
如果您有任何问题或反馈,请随时留言。
7-Zip 24.05扩展了存档兼容性
7-Zip是一款广受欢迎的开源文件归档器,以其高压缩比而闻名,它发布了最新的更新版本24.05。此更新带来了许多新功能和改进,增强了其功能和性能。它们在这儿。 扩展格式支持 7-Zip 24.05的主要亮点之一是它扩展了对各种存档格式的支持。用户现在可以打开由“ .zst ”文件扩展名。此外,7-Zip可以解压缩使用ZSTD压缩方法的Zip、SquashFS和RPM档案。 更新还扩展了其解包新Wi
在Mac上输入重音字母和特殊字符的5种方法
当人们在Mac键盘上寻找重音字母和其他特殊字符时,遇到困难并不罕见。如果您需要在文档、消息或社交媒体帖子中键入外文字符,这里有几种方法。 当天的视频 滚动以继续浏览内容 1. 按住键键入重音字母 重音字母在英语中不常用,但如果你说第二语言,你可能会一直用到它们。 在Mac上给字母加重音最简单的方法是按住相应的键,这将出现一个包含所有可用重音的弹出菜单。这种方法主要用于信件。 例如,要键入带有重音的
DirectX 11与DirectX 12的区别是什么?应该使用哪一个?
DirectX 12于2015年与Windows 10一起发布。随着它的发布,微软的DirectX 12为游戏玩家和游戏开发商开创了一个新时代。DirectX 12能够在提高GPU性能的同时减少CPU开销,很快就名声大噪。 然而,提高性能真的像从DirectX 11切换到DirectX 12一样简单吗?让我们看看DirectX 11和12之间的区别。 什么是微软的DirectX? 如中所述 我们对
什么是Mac上的统一内存?它是如何工作的?
如果你最近考虑购买一台现代Mac电脑,你可能会遇到“统一内存”这个词被用来代替RAM。但它意味着什么,它与传统RAM有何不同?跟着读,找出答案。 什么是统一内存? 苹果 YouTube 人们经常认为 苹果硅芯片 是一个CPU,但这并不完全正确。它实际上是一个SoC(片上系统),由同一封装中的各种组件组成,如CPU、GPU、神经引擎等。 所有这些组件都需要一些临时存储数据的地方才能正常工作,这就是苹
Navidrome 0.52音乐服务器推出密钥更新
Navidrome是一款自托管的开源音乐服务器和流媒体,允许用户托管自己的音乐集并从任何地方访问,它发布了最新版本0.52。以下是最新消息。 机场0.52亮点 Navidrome 0.52的关键更新是将TagLib升级到2.0.1版本,这显著改进了音乐标签的导入,使音乐信息的组织和检索更容易、更准确。这对于具有大量元数据的大型音乐库尤其有用。 在其他显著改进中,自动存储塔模式得到了增强。这种模式允