Фоновый запуск в Docker
Фоновый запуск включает контейнер и сразу возвращает терминал. Главный процесс при этом продолжает работать, а окно снова свободно для следующих команд. Командная строка внутри контейнера так не умеет: она держит окно, пока из неё не выйдут. Сайту и другой долгой программе окно не нужно.
Так запускают программу, которая
должна работать долго, например сайт.
В интерактивном режиме терминал
занят, пока главный процесс жив.
В фоне служба стартует процесс
и отпускает окно.
Режим включает флаг -d.
Для примера возьмём образ alpine
и программу sleep.
Она ничего не печатает и просто
ждёт указанное число секунд.
Поставим 300 - это пять минут.
Пока секунды идут, контейнер считается
запущенным, и его видно в обычном
списке.
Имя зададим сразу, чтобы не искать
случайное слово.
После команды терминал выведет одну
длинную строку.
Это идентификатор нового контейнера:
подтверждение, что копия создана
и процесс уже идёт.
Читать строку целиком незачем.
Удобнее открыть список запущенных
и найти контейнер по имени.
Запустим sleeper в фоне:
docker run -d --name sleeper alpine sleep 300
В списке будет строка sleeper.
Образ - alpine, команда -
sleep 300, статус - Up.
Статус Up и значит, что главный
процесс ещё работает.
Откроем список:
docker ps
Запустите в фоне контейнер с именем waiter из образа alpine так, чтобы он ждал две минуты.
Откройте список запущенных контейнеров и убедитесь, что waiter сейчас работает.