Докер: прикрепить к определенному bash - PullRequest
0 голосов
/ 03 января 2019

Допустим, у меня запущен контейнер, и я выполняю

docker exec -ti container-id /bin/bash

Затем я отсоединяюсь от этого контейнера и хочу подключиться снова

Если я сделаю это

docker attach container-id

Я не вернусь к тому удару, который я создал.Вместо этого я пойду к основному процессу.

Как я могу снова присоединиться к этому bash?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Вы не можете. Хотя документация docker exec предполагает, что он поддерживает ту же последовательность ключей «отсоединения», что и docker run, процесс exec'd не имеет идентификатора уровня Docker (кроме своих хостов и pids контейнера) и нет способа повторно прикрепить к этой оболочке.

(В Docker API "exec instance" является реальным объектом , так что это технически невозможно; CLI просто не поддерживает его.)

Рабочий процесс, который вы описываете, больше похож на то, что вы выполняете с screen или tmux на виртуальной машине.

0 голосов
/ 03 января 2019

У меня есть один контейнер, и я начал его использовать, и проверил pid из /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

Теперь я отсоединяюсь от контейнера, используя последовательность 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:/#    

Я надеюсь, что вы используете последовательность CTR+p CTR+q для отсоединения от контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...