我有一个脚本,以后台模式启动10个容器(图-d选项).我想从所有这些中聚合stdout或/ var / log中的日志.我怎样才能做到这一点?
容器是使用不同的docker-compose文件启动的,因此我无法使用docker-compose up target1 target2 target3
docker logs仅接受一个容器作为参数.
我正在考虑从所有容器上的/ var / log创建一个卷,将它们映射到docker之外的目录,确保日志没有冲突的名称,而不是使用bash tail -f *.但我希望有一个更优雅的解决方案
这个bash脚本将执行您想要的操作:
泊坞窗,日志
#!/bin/bash
while [ $# -ne 0 ]
do
(docker logs -f -t --tail=10 $1|sed -e "s/^/$1: /")&
shift
done
wait
用法:
$docker-logs containerid1 containerid2 ... containeridN
此脚本的输出包含跟随容器ID的跟踪日志中的每一行.
该脚本在–follow模式下工作,必须使用Ctrl-C中断.
请注意,docker日志的选项在脚本中是硬编码的.如果您需要能够从命令行控制docker日志的选项,那么您将需要解析命令行参数(例如使用getopts).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。