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

时间:2016-05-12 18:51:59

标签: docker docker-compose

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

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

4 个答案:

答案 0 :(得分:91)

查看泊坞日志

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

  1. 使用docker-compose up -d 以分离模式启动所有服务-d)(您将看不到任何处于分离模式的日志)
  2. 使用docker-compose logs -f -t自己附加 所有正在运行的服务的日志,而-f表示您按照日志输出和{{ 1}}选项为您提供时间戳(请参阅Docker reference
  3. 使用-tCtrl + z从日志输出中分离 ,无需关闭正在运行的容器
  4. 如果您对单个容器的日志感兴趣,可以使用Ctrl + c关键字代替:

    1. 使用docker
    2. 保存输出

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

      1. docker logs -t -f <container-name>

答案 1 :(得分:6)

如果要查看来自多个容器的输出日志。例如。说您有API容器和门户容器,则可以执行以下操作:

docker-compose logs -t -f --tail 5 portal api

其中5代表两个日志的最后5行。

答案 2 :(得分:1)

  1. 使用该命令以分离模式启动容器: wait.until(ExpectedConditions.presenceOfElementLocated(by));
  2. 查看容器使用情况:docker-compose up -d
  3. 查看容器的日志:docker ps

答案 3 :(得分:1)

很遗憾,我们需要与docker-compose logs分开运行docker-compose run。为了使它可靠地工作,我们需要取消显示docker-compose run的退出状态,然后重定向日志并以正确的状态退出。

#!/bin/bash
set -euo pipefail
docker-compose run app | tee app.log || failed=yes
docker-compose logs --no-color > docker-compose.log
[[ -z "${failed:-}" ]] || exit 1