Текст и данные · Инструкция
Как использовать docker run --init
Если основное приложение не выполняет обязанности PID 1 корректно, в контейнере могут копиться zombie-процессы или плохо
Короткий ответ
Добавьте `--init` к `docker run`, например `docker run --init --name app image`. Затем проверьте корректную остановку и отсутствие зависших дочерних процессов.
Что делать
- Определите проблему: Проверьте, есть ли дочерние процессы и корректно ли приложение реагирует на stop.
- Запустите с init: Используйте `docker run --init ..`.
- Проверьте дерево процессов: Внутри контейнера посмотрите PID и дочерние процессы подходящим системным инструментом.
- Проверьте остановку: Выполните `docker stop <container>` и убедитесь, что приложение завершается штатно.
Проверка результата
- Контейнер штатно обрабатывает остановку
- Дочерние процессы не остаются zombie из-за обязанностей PID 1
Важно
`--init` не исправляет логику самого приложения; это механизм обработки сигналов и дочерних процессов, а не универсальное средство от зависаний.
Что учитывать
`--init` не исправляет логику самого приложения; это механизм обработки сигналов и дочерних процессов, а не универсальное средство от зависаний.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. docker container run). Пример и формулировки — редакция N1RO на 2026-09-18.