我正在使用命令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
将一个列表作为其值,因此我希望也能够将容器附加到标准输入和输出。我显然在这里遗漏了一些东西,但是经过大量的搜索后,我找不到我的疑问的答案。
预先感谢您的答复