Как достигается первый процесс в Docker
Python
Junior
Без компании
Как достигается первый процесс в Docker
Ответы
Первый процесс в Docker контейнере (PID 1) запускается через `ENTRYPOINT` или `CMD` в Dockerfile. Этот процесс становится родительским для всех остальных процессов в контейнере.
**Ключевые моменты:**
- Если процесс завершается, контейнер останавливается.
- Сигналы (например, `SIGTERM`) отправляются именно этому процессу.
- Лучше использовать легковесные процесс-менеджеры (например, `tini`) для корректной обработки сигналов и зомби-процессов.
**Пример Dockerfile:**
```
FROM alpine
RUN apk add --no-cache tini
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["/your/app"]
```
**Важно:**
- Без `tini` процессы-сироты могут оставаться в системе.
- `CMD` можно переопределить при запуске контейнера (`docker run`).