【发布时间】:2026-01-04 01:15:02
【问题描述】:
我在远程服务器上运行多个 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} --format="{{.ID}}"输出什么?那么,docker ps -a -q --filter name=${USER} --format="{{.ID}}" | xargs -d ' ' docker logs输出什么? -
@JacobIRR 已经尝试过了,第一个工作正常,并为我列出了所有容器 ID。第二个抛出“错误:没有这样的容器:”。