将Docker日志输出输出到Mac和Linux上的文件中

时间:2018-11-01 14:49:36

标签: docker logging docker-compose filebeat

我有一组通过docker compose编排的容器。一些容器将写入容器内的日志文件,并且我使用卷使那些在主机上可用。但是,某些容器仅通过stdout / stderr进行日志记录。我遇到的问题是我无法弄清楚如何将这些信息保存到主机上的常规文件中。听起来Linux上的Docker不会以主机可访问的方式将日志写入文件。

我的最终目标是:

  • 使每个容器日志作为文件在主机上可用(对于 filebeat)。

    具有可在Mac和Linux上运行的相同设置。

1 个答案:

答案 0 :(得分:0)

您可以使用docker logs命令检索定向到stdout / stderr的容器日志。

请注意,docker日志只会读取docker安装中的.json文件,例如:

/var/lib/docker/containers/<your container hash>/*.json

如果您重新创建容器,该文件将被删除,并且路径将不相同,每个新容器的哈希值都不同。

如果要将其保存到已解析的json常规文件中,只需执行以下操作即可:

docker logs my-container > log.txt