Логи и код завершения
Содержание курса
2. Код завершения сохранённого экземпляра
Когда процесс завершает работу, операционная система фиксирует числовой статус возврата. По соглашению стандарта POSIX значение 0 означает успешное завершение, а любое ненулевое число от 1 до 255 указывает на сбой или специальный код выхода.
В Docker статус возврата основного процесса сохраняется в структуре метаданных контейнера. Для точечного чтения таких полей используется команда docker inspect с флагом --format. Шаблон вида '{{.Поле}}' указывает шаблонизатору путь к конкретному значению внутри JSON-дерева метаданных без необходимости разбирать весь массив параметров вручную.
Поле State.ExitCode хранит целочисленный статус возврата процесса PID 1. Проверим код завершения контейнера cf_docker_course_l06_err, в котором процесс завершался через exit 7:
docker inspect --format '{{.State.ExitCode}}' cf_docker_course_l06_err
7
Для комплексной проверки состояния можно запросить одновременно текстовый статус жизненного цикла и код завершения:
docker inspect --format '{{.State.Status}} {{.State.ExitCode}}' cf_docker_course_l06_err
exited 7
Проверим контейнер cf_docker_course_l06_silent, где процесс завершался через команду exit 3:
docker inspect --format '{{.State.Status}} {{.State.ExitCode}}' cf_docker_course_l06_silent
exited 3
Число, возвращаемое через State.ExitCode, относится исключительно к результату работы PID 1 внутри контейнера. Оно не зависит от того, с каким статусом завершились промежуточные диагностические команды на самом компьютере разработчика.
