docker exec -ti
当我连接的 docker 退出后,如何使用 正常退出我所连接的 docker 容器?
如果我退出原始容器,运行该命令的 shelldocker exec
就会被挂起,而我能找到的退出回其 shell 的唯一方法是docker exec
从另一个终端终止该命令。
有没有更优雅的方式?
无论我是否启动容器,都会发生这种情况--rm
。
我在 Ubuntu 20.04 中的 gnome-terminal 3.26.3 中的 bash 5.0.16 下运行 docker 19.03.12。
答案1
要在不退出 shell 的情况下断开 tty,请使用转义序列CTRL+ ,P然后使用CTRL+ Q。更多详细信息这里。
来自此来源的附加信息:
docker run -t -i → 可以使用Ctrl+ P& Ctrl+ Qsequece 分离并使用 docker connect 重新连接
Ctrldocker run -i → 无法与+ P& Ctrl+Q序列分离;会破坏标准输入
Ctrldocker run → 无法使用+ P& Ctrl+分离Q;可以 SIGKILL 客户端;可以使用 docker append 重新连接
希望这可以帮助。
答案2
答案3
@Khushal 给了我答案……差不多。就我而言,即使使用调用, Ctrl+ P& Ctrl+Q 仍然不起作用,但普通的+却可以。为了提供一些背景信息,我正在使用 Rancher docker 容器,因此 YMMV。run
-t
CtrlC
总而言之,使用以下命令创建容器:
docker run -t -d --name=thingy ...
照常附加:
docker attach thingy
采用传统方式Ctrl+分离C。
顺便说一句,-t
根据文档,分配一个伪TTY。