Как мне изящно выйти из контейнера докеров, к которому я подключился, используя 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
команда, когда вы выходите из обычной оболочки