运行 grep 查询多个 docker 由某些属性过滤的容器日志
Running grep query on multiple docker container logs filtered by some attribute
我在远程服务器上 运行 宁多个 docker 容器,这些容器由我的用户名标记。容器 运行 一些带有打印输出的代码。我想在属于我的所有容器的输出上使用 grep 对字符串 "xyz" 进行字符串搜索(按用户名过滤)。以下是我尝试执行此操作但似乎不起作用:
docker ps -a -q --filter name=${USER} --format="{{.ID}}" | xargs -d ' ' docker logs | grep xyz
奖金:
我想要一个 python 脚本,它可以在我 运行 在我的容器上安装容器的所有服务器上为我执行上述操作,从我的 macbook 上,像这样:
os.system('ssh {}@{} \"docker ps -a -q --filter name={} --format={{{{.ID}}}} | xargs -d ' ' docker logs | grep xyz\"'.format(usern[server], server, usern[server]))
其中 "server" 是服务器名称,"usern" 是存储我在该服务器的用户名的字典。我的 ssh 密钥已存储。
显然我也在努力完成这项工作。
docker ps -a -q --filter name=${USER} | while read c; do docker logs $c; done | grep xyz
您还应注意,-q
和 --format="{{.ID}}"
是同义词,因此只需其中一个就足够了。
我在远程服务器上 运行 宁多个 docker 容器,这些容器由我的用户名标记。容器 运行 一些带有打印输出的代码。我想在属于我的所有容器的输出上使用 grep 对字符串 "xyz" 进行字符串搜索(按用户名过滤)。以下是我尝试执行此操作但似乎不起作用:
docker ps -a -q --filter name=${USER} --format="{{.ID}}" | xargs -d ' ' docker logs | grep xyz
奖金: 我想要一个 python 脚本,它可以在我 运行 在我的容器上安装容器的所有服务器上为我执行上述操作,从我的 macbook 上,像这样:
os.system('ssh {}@{} \"docker ps -a -q --filter name={} --format={{{{.ID}}}} | xargs -d ' ' docker logs | grep xyz\"'.format(usern[server], server, usern[server]))
其中 "server" 是服务器名称,"usern" 是存储我在该服务器的用户名的字典。我的 ssh 密钥已存储。
显然我也在努力完成这项工作。
docker ps -a -q --filter name=${USER} | while read c; do docker logs $c; done | grep xyz
您还应注意,-q
和 --format="{{.ID}}"
是同义词,因此只需其中一个就足够了。