Интерактивный режим в Docker
Интерактивный режим оставляет терминал
внутри контейнера, и с его главным
процессом можно говорить
прямо с клавиатуры.
Образ hello-world для этого
не подходит: программа печатает фразу
и сразу выходит, вводить там нечего.
Нужен образ, чей главный процесс
не заканчивается сам, а ждёт
следующую команду.
Подойдёт образ alpine.
Это маленькая система Linux.
Главным процессом сделаем её
командную оболочку sh.
Оболочка ждёт команды и сама
не завершается.
Режим включают двумя флагами
вместе: -it.
Без них оболочка не получит
нормальный ввод и сразу закроется.
Имя по-прежнему задаём флагом
--name, чтобы потом найти
эту копию в списке.
Запустим контейнер shell:
docker run -it --name shell alpine sh
Приглашение сменится.
Обычно это строка / # .
Пока оно такое, команды выполняются
внутри контейнера, а не на вашем
компьютере.
Посмотрим корень его файлов:
ls
Каталогов будет немного: система в образе минимальная. Чтобы вернуться на свой компьютер, оболочку нужно завершить. Она и есть главный процесс, поэтому контейнер после этого остановится сам. Выйдем:
exit
Запустите alpine с именем desk так, чтобы открылась командная строка внутри контейнера. Узнайте текущую папку и вернитесь на свой компьютер.
Проверьте полным списком контейнеров, что desk остановился.