Коды выхода (Exit codes) Docker-контейнеров

Наиболее распространенные коды выхода, что они означают и что их вызывает

Vitalii Filiuchkov
2 min readJan 25, 2022

Один из самых частых вопросов, с которыми я сталкиваюсь в повседневной работе — “почему контейнер не запустился (или почему отвалился)?”. Можно ли, посмотрев на exit code контейнера, увидеть, где проблема?

В этой статье перечислены наиболее распространенные exit codes и даны ответы на два важных вопроса:

- Что означает этот конкретный код выхода?
- Какое действие вызвало этот код выхода?

Как узнать Exit code

Проще всего вот так:

docker ps -a

Docker Exit Code 0
Exit Code 0

Есть еще несколько способов, например:

docker inspect <container-id> — format=’{{.State.ExitCode}}’

но первый самый простой :)

Любой exit code, отличный от 0 свидетельствует о том, что работа контейнера завершена некорректно.

Самые распространенные Exit Codes

- Exit Code 0: Absence of an attached foreground process
- Exit Code 1: Indicates failure due to application error
- Exit Code 137: Indicates failure as container received SIGKILL (Manual intervention or ‘oom-killer’ [OUT-OF-MEMORY])
- Exit Code 139: Indicates failure as container received SIGSEGV
- Exit Code 143: Indicates failure as container received SIGTERM

--

--

Vitalii Filiuchkov

SRE Lead in Cloud Division of the largest telecom operator in Russia