Docker:附加到特定的bash

时间:2019-01-03 02:16:35

标签: linux docker

让我说我有一个容器正在运行,而我有

docker exec -ti container-id /bin/bash

然后我从此容器中分离出来,并希望再次连接

如果我这样做

docker attach container-id

我不会回到我创建的那个bash上。相反,我将转到主要过程。

我如何再次贴上该bash?

2 个答案:

答案 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不支持它。)

您描述的工作流程听起来更像是在虚拟机中使用screentmux运行的工作。