Я делал некоторые сложные вещи с докером, но, как оказалось, я не знаю, что -it
означает флаг. Недавно я наткнулся на пример docker run
команды, которая меня немного смутила.
docker run -itd ubuntu:xenial /bin/bash
У меня вопрос: какой смысл -it
здесь писать флаг, если контейнер во время запуска экземпляраbin/bash
В документации есть пример
docker run --name test -it debian
с объяснением
-It указывает Docker выделить псевдо-TTY, подключенный к стандартному вводу контейнера; создание интерактивной оболочки bash в контейнере.
и объяснение флага -t на странице справки
-t, --tty Назначить псевдо-телетайп
если я удалю флаг -it во время
docker run -d ubuntu:xenial /bin/bash
мой недавно созданный контейнер не так уж и жив
в docker ps -a
он обозначен как вышедший
Извините, если мой вопрос довольно глупый, я не могу найти объяснения в Интернете (у меня есть существенное непонимание этого пункта).
/bin/bash
на stdin нет контента, у него нет команд для запуска и нет возможности запрашивать пользователя, поэтому он выходит. Это 100% нормальное и ожидаемое поведение.