云计算核心技术Docker教程:将 docker 日志与远程日
从 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
第 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
第 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 teardon starting
2019-02-04T19:48:15.423Z [INFO] core: sping cluster listeners
对于日志记录的驱动程序,支持阅读日志,比如local,json-file 和journald司机,还有之前或之后的双重记录功能,成为可在功能上没有区别。对于这些驱动程序,可以docker logs在两种情况下使用日志读取。
人工智能培训
- 真正能和人交流的机器人什么时候实现
- 国产机器人成功完成首例远程冠脉介入手术
- 人工智能与第四次工业革命
- 未来30年的AI和物联网
- 新三板创新层公司东方水利新增专利授权:“一
- 发展人工智能是让人和机器更好地合作
- 新春贺喜! 经开区持续推进工业互联网平台建设
- 以工业机器人为桥 传统企业如何趟过智造这条河
- 山立滤芯SAGL-1HH SAGL-2HH
- 2015国际智能星创师大赛火热报名中!
- 未来机器人会咋看人类?递归神经网络之父-像蚂
- 成都新川人工智能创新中心二期主体结构封顶
- 斯坦德机器人完成数亿元人民币C轮融资,小米产
- 到2020年,智能手机将拥有十项AI功能,有些可能
- 寻找AI机器人的增长“跳板”:老龄化为支点的产
- 力升高科耐高温消防机器人参加某支队性能测试