【发布时间】:2017-09-16 02:30:19
【问题描述】:
我一直在尝试在运行的 docker 容器上执行 bash,该容器具有如下特定名称。 --(1)
docker ps | grep somename | awk '{print $1 " bash"}' | xargs -I'{}' docker exec -it '{}'
但它不起作用,它显示一条消息,如
“docker exec”至少需要 2 个参数
当我尝试使用如下命令时 --(2)
docker ps | grep somename | awk '{print $1 " bash"}' | xargs docker exec -it
它显示另一个错误消息,例如
输入设备不是 TTY
但是当我尝试使用 $() (子 shell)时,它可以完成,但我不明白为什么它不能与上面的两个代码 (1)(2) 一起工作(使用 xargs)
任何机构都可以解释为什么会这样吗?
非常感谢您提前提供的任何帮助 =)
编辑 1:
我知道如何以其他方式实现我的目标,例如
docker exec -it $(docker ps | grep perf | awk '{print $1 " bash"}' )
但我只是好奇为什么这些代码不起作用 =)
【问题讨论】:
-
您的 EDIT 1 是唯一的解决方案。谢谢!