将 docker-compose 日志保存到文件

新手上路,请多包涵

我在构建服务器上运行了单元测试,并希望在出现故障时捕获日志结果以进行分析。我还没有找到一种方法将 docker-compose logs 的输出重定向到一个文件,或者找到日志文件本身实际存在的位置。

我想要相当于:

 docker-compose logs > logs.txt


编辑 - 澄清:

我所有的 docker 容器都会产生有用的日志,手动运行 docker-compose logs 显示这些日志。我想编写此过程的脚本,以将这些相同的日志保存到作为我的构建服务器上的工件的文件中。本质上, docker-compose logs 的输出保存到文件中,但是 docker-compose logs 永远不会退出。

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.6k
2 个回答

默认情况下,docker 使用 json-file 驱动程序来记录您的容器日志,日志的原始 json 输出可以在以下位置找到:

 /var/lib/docker/containers/[container-id]/[container-id]-json.log

您可以通过运行获取此位置:

 docker inspect --format='{{.LogPath}}' [container-id or container-name]

当您运行 docker-compose logs [service-name] 时, docker-compose 将附加到您引用的服务(容器),并且 LogPrinter 对象将输出上述文件的内容,但已格式化以便更易于阅读.

相关文档: https ://docs.docker.com/compose/compose-file/#logging

原文由 Chris McKinnel 发布,翻译遵循 CC BY-SA 3.0 许可协议

我不确定您要达到的目标。你是否试图重现

docker-compose logs > logs.txt

在撰写文件中作为说明?还是您的问题是重定向没有“捕获”整个输出?

在以后,您可以执行以下操作:

 docker-compose logs --no-color >& logs.txt

或者

docker-compose logs --no-color |& tee logs.txt

同时查看终端上的日志并将其转储到文件中。

原文由 creack 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题