同时查看所有docker容器的日志

2024-06-28 11:47:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在后端使用docker,当我第一次使用docker启动后端时

docker-compose up

我一次得到所有4个Docker的日志输出,这样我就可以看到当请求进来时它们是如何相互作用的。看起来像这样,一个从nginx到couchdb的请求

http://i.imgur.com/E4GQ43F.png

现在的问题是,我正在GCE上运行负载平衡,当一个新的虚拟机启动时,它会自动启动docker并正常运行,我希望能够访问负载平衡的虚拟机并查看实时日志,但我无法让docker允许我使用这种风格的日志,它给了我正常的全白色字体,没有它来自哪里的标签

使用

docker events  

不做任何操作,它不会返回任何信息

tldr;与运行“docker compose up”时获得的日志输出相同,获取视图的最佳方式是什么


Tags: composedocker视图信息风格字体nginx标签
3条回答

我使用它的一个变体来活尾(--跟踪)所有日志,并指出当时哪个日志在跟踪。这个bash包括stdout和stderr。注意:之后可能需要清除*.log,err}的/tmp目录

for c in $(docker ps -a --format="{{.Names}}")
do
       docker logs -f $c > /tmp/$c.log 2> /tmp/$c.err &
done
tail -f /tmp/*.{log,err}

希望这有帮助。这些天来伐木问题越来越严重,其他的“离开我的草坪”老人咆哮着

如果使用docker compose,则使用

docker-compose logs --tail=0 --follow

而不是

docker logs --tail=0 --follow

这将得到我最初想要的输出

您可以查看所有正在运行的容器的日志

docker ps -q | xargs -L 1 docker logs

理论上,如果xargs与-P <count>一起运行,则这可能也适用于--follow,其中计数高于正在运行的容器数

相关问题 更多 >