我目前使用docker作为后端,当我第一次用
启动时
docker-compose up
我一次得到所有4个码头工人的日志输出,所以我可以看到他们在请求进来时如何相互交互。看起来像这样,一个请求从nginx到couchdb
http://i.imgur.com/E4GQ43F.png
现在的问题是我在GCE上运行负载均衡,当新VM启动时,它会自动启动docker并正常运行,我希望能够访问负载均衡的VM并查看实时日志,但我不能让docker允许我这种风格,当我使用日志时,它给我正常的所有白色字体,没有标签来自它。
使用docker events
什么都不做,它不会返回任何信息。
tldr;获取视图的最佳方式是什么,与运行时获得的日志输出相同" docker-compose up"
5 个答案:
如果使用docker-compose,请使用
docker-compose logs --tail=0 --follow
而不是
docker logs --tail=0 --follow
这将获得我最初寻找的输出。
您可以使用以下命令查看所有正在运行的容器的日志
docker ps -q | xargs -L 1 docker logs
理论上,如果xargs与--follow一起运行,而xargs的数量大于正在运行的容器的数量,那么这对-P <count>也可能适用。
我使用此变量的变体来尾部(-跟随)所有日志,并指示当时哪个日志在尾部。此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}
希望这会有所帮助。如今,伐木变得如此麻烦,而其他下车的老人都在抱怨...
答案 3 :(得分:1)
如果使用的是Docker Swarm,则可以通过以下方式找到服务
docker service ls
获取ID,然后运行
docker service logs $ID -f
如果使用tty:true定义服务,则必须使用--raw标志运行。请注意,这不会告诉您哪个容器正在提供输出的日志条目。
试试“看”
这是一个用于 docker 容器的快速而肮脏的 multitail/xtail。
#watch 'docker ps --format "{{.Names}}" | sort | xargs --verbose --max-args=1 -- docker logs --tail=8 --timestamps'
根据需要调整参数“--tail=8”,使所有内容仍然适合一个屏幕。
当容器停止和重新启动时,上面列出的“xargs”方法将停止工作。这里的这种“观察”方法没有这个问题。 (但也不是很好。)
- 文章链接: https://blog.zhangcun.store/2022/06/16/tong-shi-cha-kan-suo-you-docker-rong-qi-de-ri-zhi/
- 版权声明: 本网站所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
你的赏识是我前进的动力
支付宝
微信