当我使用docker-compose up
时,我可以在docker-compose.yml
文件中看到所有容器的日志。
但是,当我使用docker-compose run app
时,我只看到app
的控制台输出,但没有app
所依赖的服务。如何查看其他服务的日志输出?
答案 0 :(得分:91)
查看泊坞日志
您可以在分离模式下启动Docker compose,然后将自己附加到所有容器的日志中。如果您已完成日志记录,则可以从日志输出中分离,而无需关闭您的服务。
docker-compose up -d
以分离模式启动所有服务(-d
)(您将看不到任何处于分离模式的日志)docker-compose logs -f -t
自己附加 所有正在运行的服务的日志,而-f
表示您按照日志输出和{{ 1}}选项为您提供时间戳(请参阅Docker reference)-t
或Ctrl + z
从日志输出中分离 ,无需关闭正在运行的容器如果您对单个容器的日志感兴趣,可以使用Ctrl + c
关键字代替:
docker
保存输出
要将输出保存到文件,请将以下内容添加到logs命令:
docker logs -t -f <container-name>
答案 1 :(得分:6)
如果要查看来自多个容器的输出日志。例如。说您有API容器和门户容器,则可以执行以下操作:
docker-compose logs -t -f --tail 5 portal api
其中5代表两个日志的最后5行。
答案 2 :(得分:1)
wait.until(ExpectedConditions.presenceOfElementLocated(by));
docker-compose up -d
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