如何使用 docker-compose run 查看日志输出?

新手上路,请多包涵

当我使用 docker-compose up 我可以在我的 docker-compose.yml 文件中看到所有容器的日志。

但是,当我使用 docker-compose run app 我只看到 app 的控制台输出,但没有 app 依赖的服务。如何查看其他服务的日志输出?

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

阅读 767
1 个回答

在撰写本文时, docker-compose run 命令没有提供查看其他服务日志的开关,因此您需要使用 docker-compose logs 命令查看所需的日志。

2022 年 6 月 10 日更新

正如@Sandburg 所说,docker compose 现在已集成到 docker 中。如此处所述 大多数 docker compose 命令 都可以以相同的方式 调用,只是 没有破折号

新的 Compose V2 支持将 compose 命令作为 Docker CLI 的一部分,现已推出。

Compose V2 将 compose 功能集成到 Docker 平台中,继续支持之前的大部分 docker-compose 功能和标志。您可以通过使用 docker compose 而不是 docker-compose 将连字符 (-) 替换为空格来运行 Compose V2。

2019 年 7 月 1 日更新

docker-compose logs <name-of-service>

对于所有服务

docker-compose logs

使用 文档 中的以下选项:

用法:日志[选项] [服务…]

选项:

–no-color 产生单色输出。

-f, –follow 跟随日志输出。

-t, –timestamps 显示时间戳。

–tail=“all” 从每个容器的日志末尾开始显示的行数。

查看泊坞窗日志

您可以在分离模式下启动 Docker compose,稍后将自己附加到 所有容器 的日志中。如果您已完成查看日志,您可以将自己从日志输出中分离出来, 而无需 关闭您的服务。

  1. 使用 docker-compose up -d分离模式启动所有服务-d )(在分离模式下您不会看到任何日志)
  2. 使用 docker-compose logs -f -t 自己附加到 所有正在运行的服务 的日志中,而 -f 表示您遵循日志输出,而 -t 选项为您提供 参考时间戳(参见 Docker )
  3. 使用 Ctrl + zCtrl + c 将自己与日志输出 分离而无需 关闭正在运行的容器

如果您对单个容器的日志感兴趣,可以使用 docker 关键字:

  1. 使用 docker logs -t -f <name-of-service>

保存输出

要将输出保存到文件中,请将以下内容添加到日志命令中:

  1. docker-compose logs -f -t >> myDockerCompose.log

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

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