bash - 管道 docker run 容器 ID 到 docker exec

标签 bash docker pipe exec

在我的开发过程中,我发现自己经常在生成的容器 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/

相关文章:

c - 更好地理解管道

linux - AWK 将月份从日期解析为变量

node.js - Docker build npm install 错误网络超时

docker - 使用多阶段 Dockerfile 构建时的 COPY 问题——没有这样的文件或目录

python - 如何使用 subprocesses.call 并将一个输出通过管道传输到 txt 文件?

Python 与空闲进程的进程间通信

python - 如何将 zip 文件拆分为多个有效的 zip 文件?

bash - 从带有变量的 bash 运行 IDL 程序

bash - 如何检查 bash 脚本中文件名的扩展名?

jenkins - 具有Jenkins Docker容器的TFS工作区