Вступить в клуб →
лёгкаявопросDocker и сборка образов

Контейнер сразу переходит в Exited (0) после docker run

Образ веб-сервера собран так:

FROM debian:12
RUN apt-get update && apt-get install -y nginx
COPY nginx.conf /etc/nginx/nginx.conf
CMD ["service", "nginx", "start"]

Запуск на сервере:

$ docker run -d --name web myweb:1.0
9f2c1b7ad33e
$ docker ps -a
CONTAINER ID   IMAGE       COMMAND                 STATUS
9f2c1b7ad33e   myweb:1.0   "service nginx start"   Exited (0) 2 seconds ago

В логах контейнера ошибок нет, nginx внутри успевает подняться.

Почему контейнер не остаётся запущенным?

  • Контейнер остановлен политикой перезапуска по умолчанию: без флага `--restart=always` Docker гасит контейнер сразу после того, как сервис внутри него стартовал
  • Контейнеру не выделили терминал: без флагов `-i` и `-t` процесс внутри не получает stdin и завершается сразу после запуска, поэтому статус Exited (0)
  • Порт не опубликован флагом `-p`, соединений извне нет, и Docker останавливает контейнер как простаивающий, о чём и сообщает нулевым кодом выхода
  • Контейнер живёт ровно столько, сколько работает его главный процесс: `service nginx start` уводит демон в фон и завершается сама, PID 1 выходит с кодом 0

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела