加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

来自多个Docker容器的尾部标准输出

发布时间:2020-12-16 03:52:13 所属栏目:安全 来源:网络整理
导读:我有一个脚本,以后台模式启动10个容器(图-d选项).我想从所有这些中聚合stdout或/ var / log中的日志.我怎样才能做到这一点? 容器是使用不同的docker-compose文件启动的,因此我无法使用docker-compose up target1 target2 target3 docker logs仅接受一个容器

我有一个脚本,以后台模式启动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).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读