在我的开发过程中,我发现自己经常在生成的容器 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
有人知道如何解决这个问题吗?
编辑:我也忘了说我定义了一个 ENTRYPOINT 并且不能覆盖它。
最佳答案
改为这样做:
ID=$(docker run -itd image) && docker exec -it $ID bash
因为 xargs
在不分配新 tty 的情况下执行它的参数。
关于bash - 管道 docker run 容器 ID 到 docker exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44577344/