n1ro°
RU

Текст и данные · Инструкция

Как использовать docker run --init

Если основное приложение не выполняет обязанности PID 1 корректно, в контейнере могут копиться zombie-процессы или плохо

Редакция N1RO · Проверено

Короткий ответ

Добавьте `--init` к `docker run`, например `docker run --init --name app image`. Затем проверьте корректную остановку и отсутствие зависших дочерних процессов.

Что делать

  1. Определите проблему: Проверьте, есть ли дочерние процессы и корректно ли приложение реагирует на stop.
  2. Запустите с init: Используйте `docker run --init ..`.
  3. Проверьте дерево процессов: Внутри контейнера посмотрите PID и дочерние процессы подходящим системным инструментом.
  4. Проверьте остановку: Выполните `docker stop <container>` и убедитесь, что приложение завершается штатно.

Проверка результата

  • Контейнер штатно обрабатывает остановку
  • Дочерние процессы не остаются zombie из-за обязанностей PID 1

Важно

`--init` не исправляет логику самого приложения; это механизм обработки сигналов и дочерних процессов, а не универсальное средство от зависаний.

Что учитывать

`--init` не исправляет логику самого приложения; это механизм обработки сигналов и дочерних процессов, а не универсальное средство от зависаний.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. docker container run). Пример и формулировки — редакция N1RO на 2026-09-18.