我一直在尝试在运行特定名称的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)时,可以完成操作,但我不明白为什么使用xargs的上述两个代码(1)(2)无法工作。
有人能解释一下为什么会发生这些吗?
提前感谢您提供的任何帮助=)
编辑1:
我知道如何用其他方法实现我的目标
docker exec -it $(docker ps | grep perf | awk '{print $1 " bash"}' )
但我只是好奇为什么那些代码不起作用 =)