Docker:重新连接到`docker exec`进程
如果我使用docker exec
来启动一个shell,
docker exec -ti <CONTAINER> /bin/bash
我可以使用Ctrl + p Ctrl + q来分离这个shell进程。 然后这个shell仍然在容器内部运行,但是我怎样才能重新连接到那个特定的shell(由docker exec
启动,而不是docker run
)?
可悲的是,这还不可能; 在GitHub上看到这个问题。 我也想要这个功能,但目前看起来没有直接的方法来做到这一点。
已经提出了一个解决方法,以处理您通过ssh
访问一个盒子并在远程盒子上运行docker exec
的情况(或者,在终端模拟器不稳定并且可能会崩溃的情况下):始终运行您的docker exec
命令在screen
或tmux
。 如果你这样做,只要你从screen
/ tmux
会话中分离出来,你可以在以后重新连接它,并且仍然可以访问你的docker exec
命令。 (这与@ vodolaz095建议的有点不同,因为它涉及在容器外部运行screen
或tmux
,使其适用于不运行screen
/ tmux
作为其主流程的容器)
docker exec
专门用于在已经启动的容器中运行新事物,无论是shell还是其他进程。
docker attach
用于连接到正在运行的进程,因此您只能使用一个shell实例。
运行你的容器(进程)
docker run -tid --name <CONTAINER> <IMAGE>:<TAG> bin/bash
然后
docker attach <CONTAINER>
分离Ctrl + p + Ctrl + q
通过这种方式,您可以仅使用一个shell实例连接和分离多次
链接地址: http://www.djcxy.com/p/90093.html上一篇: Docker: reattach to `docker exec` process
下一篇: Joda time: DateTimeComparator. What is similar in Java 8 Time Api?