我已经在网上到处做好了准备,但答案并没有得到彻底的解释。我希望这个问题如果得到解答,可以提供对此事的更新和彻底的解释。
为什么有人会使用以下参数定义容器:
stdin: true
tty: true
Also if
`docker run -it`
将执行的容器进程绑定到调用客户端 stdin 和 tty,在容器上设置这些标志将其执行的进程绑定到什么?
我只能设想一种情况,那就是,如果命令是 bash,那么你可以attach容器运行后稍后再访问它(即 bash 运行实例)。
但又可以跑docker run it
必要时。我的意思是发起一场新的狂欢并做任何需要做的事情。无需连接到正在运行的设备
所以问题的第一部分是:
a) 幕后发生了什么?
b) 为什么以及何时使用它,它有什么区别以及附加值是什么?
据我所知,设置stdin: true
在容器规范中,只会保持容器进程标准输入打开,等待有人附加到它kubectl attach
.
As for tty: true
- 这只是告诉 Kubernetes stdin 也应该是一个终端。某些应用程序可能会根据 stdin 是终端的事实来改变其行为,例如添加一些交互性、命令完成、彩色输出等。但在大多数情况下,您通常不需要它。
Btw kubectl exec -it POD bash
还包含标志-it
但在这种情况下,这确实需要,因为您正在容器的名称空间中生成 shell 进程,该进程需要来自用户的标准输入和终端。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)