Ответ
Для интерактивного доступа к командной строке (шеллу) уже запущенного контейнера используется команда docker exec.
Основной способ: docker exec
Эта команда запускает новый процесс внутри работающего контейнера. Это самый частый и безопасный способ для отладки или выполнения команд.
-i(--interactive): Позволяет взаимодействовать с процессом (передавать ввод).-t(--tty): Выделяет псевдо-терминал, делая сессию похожей на обычную SSH-сессию.
Примеры:
# Запустить интерактивную сессию bash в контейнере
docker exec -it my_container_name /bin/bash
# Если в образе нет bash, попробуйте sh (например, в Alpine)
docker exec -it my_container_name /bin/sh
Альтернатива: docker attach
Эта команда подключается к основному процессу (PID 1), запущенному в контейнере. Используйте её с осторожностью: если вы выйдете из этого процесса (например, через Ctrl+C), контейнер может остановиться.
# Подключиться к главному процессу контейнера
docker attach my_container_name
Ключевое различие:
exec: Создает новую сессию, не влияя на основной процесс. Идеально для отладки.attach: Подключается к существующему главному процессу. Полезно для наблюдения за логами или интерактивными приложениями.