从 Docker Engine 20.10 开始,该docker logs命令 可能只能通过登录使用的驱动程序,使用支持的容器 local,json-file或journald登录。但是,许多第三方日志驱动程序不支持使用本地读取日志docker logs
这在尝试以自动化和标准方式收集日志数据时产生了多个问题。只能通过第三方解决方案以第三方工具指定的格式访问和查看日志信息。
从 Docker Engine 20.10 开始,docker logs无论配置的日志驱动程序或插件如何,您都可以使用读取容器日志。这种称为“双日志记录”的功能允许您以docker logs一致的格式在本地读取容器日志,而不管使用的日志驱动程序如何,因为引擎配置为将信息记录到“本地”日志记录驱动程序。有关其他信息,请参阅配置默认日志记录驱动程序。
双日志记录使用local日志驱动程序作为缓存来读取容器的最新日志。默认情况下,缓存已启用日志文件轮换,并且每个容器最多限制为 5 个文件,每个文件为 20MB(压缩前)。
使用双日志记录不需要更改配置。如果配置的日志驱动程序不支持读取日志,Docker Engine 20.10 及更高版本会自动启用双日志记录。
以下示例显示了在docker logs具有和不具有双重日志记录可用性的情况下运行命令的结果:
没有双重记录功能
当容器配置了远程日志驱动,例如splunk,并且禁用了双日志记录时,尝试在本地读取容器日志时会显示错误:
第 1 步:配置 Docker 守护进程
$ cat /etc/docker/daemon.json
{
“log-driver”:”splunk”,
“log-opts” :{
“cache-disabled”:”true”,
…(options for “splunk” logging driver)
}
}
第二步:启动容器
$ docker run -d busybox –name testlog top
第 3 步:读取容器日志
$ docker logs 7d6ac83a89a0
Error response from daemon: configured logging driver does not support reading
具有双重记录功能
启用双日志缓存后docker logs,即使日志驱动程序不支持读取日志,也可以使用该命令读取日志。以下示例显示了一个守护程序配置,该配置使用splunk远程日志记录驱动程序作为默认值,并启用了双日志记录缓存:
第 1 步:配置 Docker 守护进程
$ cat /etc/docker/daemon.json
{
“log-driver”:”splunk”,
“log-opts” :{
…(options for “splunk” logging driver)
}
}
第二步:启动容器
$ docker run -d busybox –name testlog top
第 3 步:读取容器日志
$ docker logs 7d6ac83a89a0
2019-02-04T19:48:15.423Z [INFO] core: marked as sealed
2019-02-04T19:48:15.423Z [INFO] core: pre-seal teardown starting
2019-02-04T19:48:15.423Z [INFO] core: stopping cluster listeners
对于日志记录的驱动程序,支持阅读日志,比如local,json-file 和journald司机,还有之前或之后的双重记录功能,成为可在功能上没有区别。对于这些驱动程序,可以docker logs在两种情况下使用日志读取。
Ubuntu是一个以桌面应用为主的Linux操作系统。它是一个开放源代码的自由软件,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu将为全球数百个公司提供商业支持。 ...
查看全文Docker采取了一种保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,四位知情人士今日透露,亚马逊、微软和谷歌这三大云计算服务提供商,正在竞争波音公司(Boeing)价值10亿美元的云服务合同。 这些...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,多位知情人士今日称,继加州、纽约州和华盛顿州之后,马萨诸塞州和宾夕法尼亚州的总检察长也加入到对亚马逊的反垄断调查中。 如今,越来越...
查看全文
您好!请登录