我有一组通过docker compose编排的容器。一些容器将写入容器内的日志文件,并且我使用卷使那些在主机上可用。但是,某些容器仅通过stdout / stderr进行日志记录。我遇到的问题是我无法弄清楚如何将这些信息保存到主机上的常规文件中。听起来Linux上的Docker不会以主机可访问的方式将日志写入文件。
我的最终目标是:
使每个容器日志作为文件在主机上可用(对于 filebeat)。
具有可在Mac和Linux上运行的相同设置。
答案 0 :(得分:0)
您可以使用docker logs命令检索定向到stdout / stderr的容器日志。
请注意,docker日志只会读取docker安装中的.json文件,例如:
/var/lib/docker/containers/<your container hash>/*.json
如果您重新创建容器,该文件将被删除,并且路径将不相同,每个新容器的哈希值都不同。
如果要将其保存到已解析的json常规文件中,只需执行以下操作即可:
docker logs my-container > log.txt