为docker start获得ptty

为docker start获得ptty,docker,Docker,Docker的run和exec命令都允许-t标志获取psuedo终端。这对于类似于:docker run-it--name deb debian bash的东西非常有效。一旦用户退出该容器中的交互式bash shell,容器就会停止。虽然exec命令同样可以使用相同的标志,并且可以很好地工作,但是停止的容器可能不会在其中执行任何内容,除非它启动 start命令不带-t标志。仅使用-ai和say一起使用docker start-ai deb将再次运行bash,但无法显示交互式提示,使用某种。。。大

Docker的
run
exec
命令都允许
-t
标志获取psuedo终端。这对于类似于:
docker run-it--name deb debian bash
的东西非常有效。一旦用户退出该容器中的交互式bash shell,容器就会停止。虽然
exec
命令同样可以使用相同的标志,并且可以很好地工作,但是停止的容器可能不会在其中执行任何内容,除非它启动

start命令不带
-t
标志。仅使用
-ai
和say一起使用
docker start-ai deb
将再次运行
bash
,但无法显示交互式提示,使用某种。。。大而笨重的如果没有
-ai
,bash进程将退出,使容器在启动后立即停止

当此次优化的附加、交互式bash处于打开状态时,^z将不会作为当前docker命令的背景。但是,如果您打开一个新终端,正确设置docker环境变量,现在,最后发出
docker exec-it deb bash
,您可以在第一次启动容器时返回更好的交互式bash提示符


这似乎很复杂。我是否遗漏了一些有关start或exec的信息,这些信息可能会使使用bash或其他交互式命令变得更容易?也许有一些首选的运行命令永远不会退出,保持容器运行(直到被告知停止),并使用很少的处理器时间,以便使exec成为附加到容器中交互进程的首选方法。

如果您使用类似于
docker run-it ubuntu sh-c的东西启动容器“虽然是真的;做世界的回声;睡眠98;完成“
然后当您执行
docker exec-it容器\u id bash
并执行CTRL-D时,容器不会stop@user2915097是的;你甚至不需要回音,而bash也不需要真实的声音。你可以
tail-f/dev/null
,它永远不会关闭,或者一些sleep命令版本接受
无限
。然而,是否有一些docker惯用的原因
start
不处理
-t
。有没有什么奇特的方法可以用管道之类的东西来模拟它?我还注意到,即使使用
-t
我也无法实际运行
vim
nano
jed
jupp
emacs
,因为缺少明显的终端/tty。