【问题标题】:See docker container logs on host while using gelf driver使用 gelf 驱动程序时查看主机上的 docker 容器日志
【发布时间】:2018-10-10 10:31:29
【问题描述】:

我正在使用 gelf 作为我的 docker 容器的日志驱动程序。在日志选项中,我提供了 udp 端点。

现在当我启动容器时,一切都按预期工作。

我的问题是,是否可以在它运行的主机中看到容器日志(而不是在 UDP 端点)?

【问题讨论】:

  • 您的意思是将容器日志视为“docker logs ...”吗?
  • @Hazim docker logs 不适用于不向commands output 发送日志的日志记录驱动程序。要回答这个问题,不,不可能在目的地以外的任何其他地方看到日志
  • @Hazim 我无论如何都在寻找主机中的日志,我知道当我们更改日志驱动程序时,无法从 docker 日志中看到日志。但是有没有其他办法?
  • 不推荐这样做的方式。我确实在我的答案中添加了一个解决方法,但它是一个“解决方法”,不确定它是否适合您的需要

标签: docker logging syslog rsyslog graylog2


【解决方案1】:

如果您正在谈论在运行 docker 容器的机器上通过 docker logs 命令查看日志,则在使用其他日志记录驱动程序时不可能这样做。

limitations of logging drivers

如果您知道日志在容器内的位置,解决方法是编写一个脚本,从容器中复制日志文件并显示它,或者只是将exec's 复制到容器中并显示它.但我真的不建议这样做。

类似:

#!/bin/bash
docker cp mycontainer:/var/log/mylog.log $(pwd)/logs/mylog.log
tail -f $(pwd)/logs/mylog.log

【讨论】:

    【解决方案2】:

    这取决于 Docker 版本。

    Docker 20.10 及更高版本引入了“双重日志记录”,它使用本地缓冲区,允许您对任何日志记录驱动程序使用 docker logs 命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 2019-10-24
      • 2016-06-17
      • 1970-01-01
      相关资源
      最近更新 更多