Docker在-i和-a stdin之间运行差异

时间:2020-03-30 10:05:49

标签: docker

我正在使用命令docker run的选项,但无法理解使用选项-i和选项-a stdin的区别。

这就是我尝试过的。 当我运行以下命令时:

docker  run --rm --name test -i  alpine

我可以键入Linux命令,例如ls,并获得一些输出。我期望如此,因为如果我不指定选项-a,则默认情况下将附加标准输出(并且使用选项-i附加标准输入)。到现在为止还挺好。

如果我尝试:

docker  run --rm --name test -a stdin  alpine

我可以输入Linux命令,但是没有收到输出。同样,这并不令我感到惊讶,使用选项-a会覆盖默认行为,因此未附加标准输出。 然后,天真地,我尝试将选项-a stdout添加到上一个命令:

docker  run --rm --name test -a stdin -a stdout  alpine

令我惊讶的是,该容器立即停止运行。 行为与(没有指定选项-a)完全相同:

docker  run --rm --name test alpine

我的问题是为什么?通过运行docker run --help,我看到选项-a将一个列表作为其值,因此我希望也能够将容器附加到标准输入和输出。我显然在这里遗漏了一些东西,但是经过大量的搜索后,我找不到我的疑问的答案。 预先感谢您的答复

0 个答案:

没有答案