在阅读不同的书籍,文章和论坛帖子时,我经常看到以下Docker Run命令:
docker run -tid <dockerimage>
Run Code Online (Sandbox Code Playgroud)
我真的不明白:用伪tty(-t)启动一个分离的(-d)Container interactive(-i)是否有意义?
我的意思是一个分离的Container永远不会提示你进入控制台,所以我认为没有必要用-it调用它.
Ana*_*and 12
当您使用-d选项运行映像时,容器将在执行命令后立即退出.如果使用-itd选项运行,容器将被分离但在后台运行,您可以在需要时附加回来.请参阅附带的屏幕截图以获得更清晰
-i(交互式)是关于是否保持标准输入打开(某些程序,例如bash,使用标准输入而其他程序则不开放)。-d(分离)与docker run命令是否等待正在运行的进程退出有关。因此,它们是正交的,并不是天生矛盾的。诸如bash之类的程序在stdin关闭时退出,因此-i,如果没有,它将立即退出。
-t分配一个伪tty。您可以看到-it使用just 与vs 运行bash的区别-i。例如,如果不使用-t,则不会得到任何提示,也不会ls在一列中显示结果。这种差异就像running ls和running 之间的差异一样ls | cat,其中cat没有伪tty。
当您将docker runbash放入容器中时,-it其-itd行为如下所示:
-it,docker run可立即显示bash提示。-itd,会docker run立即退出,但是您可以docker attach在那之后获得bash提示,就好像您刚刚完成操作一样docker run -it。| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |