让我说我有一个容器正在运行,而我有
docker exec -ti container-id /bin/bash
然后我从此容器中分离出来,并希望再次连接
如果我这样做
docker attach container-id
我不会回到我创建的那个bash上。相反,我将转到主要过程。
我如何再次贴上该bash?
答案 0 :(得分:0)
我有一个容器,并且已经开始使用它,并检查了pid
的{{1}}
/bin/bash
现在,我使用[root@ip-10-0-1-153 centos]# docker exec -ti 78c2e4a46b58 /bin/bash
root@78c2e4a46b58:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 03:24 ? 00:00:00 bash
root 10 0 0 03:24 ? 00:00:00 /bin/bash
root 20 10 0 03:24 ? 00:00:00 ps -ef
序列从容器中分离,并且容器已分离。
现在我使用容器ID重新附加,并且看到与CTR+p and CTR+q
相同的pid
/bin/bash
我希望您使用root@78c2e4a46b58:/# [root@ip-10-0-1-153 centos]# docker attach 78c2e4a46b58
root@78c2e4a46b58:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 03:24 ? 00:00:00 bash
root 10 0 0 03:24 ? 00:00:00 /bin/bash
root 21 1 0 03:25 ? 00:00:00 ps -ef
root@78c2e4a46b58:/#
序列与容器分离。
答案 1 :(得分:0)
不能。尽管docker exec
documentation建议它支持与docker run
相同的“分离”键序列,但该执行进程没有任何Docker级别的标识(除了其主机和容器pids),而且没有办法重新连接到该外壳。
(在Docker API中,"exec instance" is an actual object因此从技术上来讲这不是不可能的; CLI不支持它。)
您描述的工作流程听起来更像是在虚拟机中使用screen
或tmux
运行的工作。