将Docker运行容器ID管道传输到docker exec

jvh*_*she 2 bash pipe exec docker

在我的开发中,我发现自己经常在生成的容器ID上发出docker run命令,然后发出命令docker exec。必须在命令之间复制/粘贴容器ID有点烦人,因此我试图将容器ID传递到docker exec命令中。

这是我的示例命令。

docker run -itd image | xargs -i docker exec -it {} bash

这将启动容器,但是随后出现以下错误。

the input device is not a TTY
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

编辑:我也忘了提我定义了一个ENTRYPOINT,并且不能覆盖它。

Rob*_*ert 6

改为这样做:

ID=$(docker run -itd image)  && docker exec -it $ID bash
Run Code Online (Sandbox Code Playgroud)

因为xargs执行它参数而不分配新的tty。