Назад | Перейти на главную страницу

Как выйти из docker exec после выхода из контейнера?

Как мне изящно выйти из контейнера докеров, к которому я подключился, используя docker exec -ti, после докера я подключился к выходам?

Если я выйду из исходного контейнера, оболочка, запустившая docker exec команда зависла, и единственный способ вернуться в ее оболочку - это убить docker exec команда с другого терминала.

Есть способ более изящный?

Это происходит, если я запускаю контейнер с --rm или не.

Я запускаю docker 19.03.12 под bash 5.0.16 в gnome-terminal 3.26.3 в Ubuntu 20.04.

Чтобы отсоединить tty без выхода из оболочки, используйте escape-последовательность CTRL+п с последующим CTRL+Q. Подробнее Вот.

Дополнительная информация из этого источника:

docker run -t -i → можно отсоединить с помощью Ctrl+п & Ctrl+Q sequece и повторное подключение с помощью докера

docker run -i → не может быть отсоединен с помощью Ctrl+п & Ctrl+Q последовательность; нарушит стандартный ввод

docker run → не может быть отсоединен с помощью Ctrl+п & Ctrl+Q; может клиент SIGKILL; можно повторно подключить с помощью докера

Надеюсь это поможет.

Вы сначала запускаете контейнер с отдельный режим, а не передний план:

docker run --name mynginx -p 80:80 -d nginx

Затем вы можете прикрепить к нему docker exec:

docker exec -it mynginx /bin/sh

Имейте в виду, что если вы хотите прикрепить к контейнеру для проверки, вы должны указать --interactive , -i и --tty , -t варианты, потому что ваш контейнер уже запускает ваш основной процесс в фоновом режиме из вашего предыдущего docker run -d команда.
Таким образом, когда вы закончите осматривать свой контейнер, вы можете изящно выйти из него с помощью ctrl+d или logout команда, когда вы выходите из обычной оболочки