Docker контейнер падает сразу после запуска как найти причину
Рейтинг: 82.5% · 128 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Docker контейнер падает сразу после запуска как найти причину
Запускаю контейнер командой docker run, он стартует и тут же падает с кодом выхода 1. Никакого вывода нет, или вывод обрывается моментально. docker logs показывает либо пусто, либо пару строк без явной ошибки. Образ собирается без проблем, локально приложение работает. Что вообще смотреть в первую очередь?
✔ Лучший ответ выбран автором и совпадает с автоматическим подбором — juniorredteam
Развёрнутое решение: диагностика падающего контейнера по шагам. Шаг 1 — docker logs сразу после запуска, флаг -f чтобы стримить. Шаг 2 — смотри код выхода через docker inspect --format='{{.State.ExitCode}}'. Код 1 — общая ошибка приложения, код 126 — нет прав на исполнение, код 127 — бинарь не найден, код 137 — убит по OOM. Шаг 3 — docker events в отдельном терминале, пока запускаешь…
Re: Docker контейнер падает сразу после запуска как найти причину
Первым делом запусти docker run --rm -it <image> /bin/sh или /bin/bash — войдёшь внутрь и посмотришь, что происходит вручную. Часто причина в том, что ENTRYPOINT скрипт завершается с ненулевым кодом из-за отсутствующей переменной окружения. Провери все обязательные ENV прямо в шелле.
Re: Docker контейнер падает сразу после запуска как найти причину
У меня была точно такая же история. Оказалось, что в образе был задан USER без нужных прав на директорию, куда приложение пыталось писать логи. Добавил в Dockerfile строку RUN chown -R appuser:appuser /app/logs — и всё поднялось. docker inspect <container_id> покажет с каким пользователем запущен контейнер.
- sleepypanic
- Сообщения: 71
- Зарегистрирован: 11 май 2026, 01:26
Re: Docker контейнер падает сразу после запуска как найти причину
Советую всегда смотреть docker logs --details <container_id> и ещё journalctl если Docker под systemd. Также попробуй docker run --entrypoint='' <image> sleep 3600 — это переопределит entrypoint и контейнер останется живым, можно будет docker exec зайти и спокойно разобраться.
- juniorredteam
- Сообщения: 66
- Зарегистрирован: 11 май 2026, 07:16
Re: Docker контейнер падает сразу после запуска как найти причину
✔ Лучший ответ — выбран автором и совпадает с авто-подбором
Развёрнутое решение: диагностика падающего контейнера по шагам. Шаг 1 — docker logs <id> сразу после запуска, флаг -f чтобы стримить. Шаг 2 — смотри код выхода через docker inspect <id> --format='{{.State.ExitCode}}'. Код 1 — общая ошибка приложения, код 126 — нет прав на исполнение, код 127 — бинарь не найден, код 137 — убит по OOM. Шаг 3 — docker events в отдельном терминале, пока запускаешь контейнер, покажет системные события. Шаг 4 — если образ на Alpine, то многие bash-скрипты падают потому что нет bash, только sh; поменяй shebang на #!/bin/sh. Шаг 5 — проверь ulimits и доступную память: docker run --memory=512m может убить контейнер если приложению не хватает. Чаще всего проблема в одном из трёх: неверные переменные окружения, права на файлы, отсутствующий бинарь в PATH.
- sleepypanic
- Сообщения: 71
- Зарегистрирован: 11 май 2026, 01:26
Re: Docker контейнер падает сразу после запуска как найти причину
Еще частая причина, которую тут не назвали: бинарь собран под glibc, а образ alpine. Падает мгновенно, в логах либо пусто, либо невнятное no such file or directory, хотя файл на месте лежит. Проверяется через ldd на бинарь внутри контейнера или тупо пересборкой с CGO_ENABLED=0, если это go. У меня джун неделю с этим воевал, пока я не глянул FROM в его Dockerfile.
Re: Docker контейнер падает сразу после запуска как найти причину
@katykat, docker run -it image /bin/sh переопределяет только CMD. Если в образе задан ENTRYPOINT, твой sh уедет в него аргументом и ничего не получится. Надо -entrypoint /bin/sh, иначе человек попробует твой вариант и решит, что совет нерабочий.
- rn2l3x4zop
- Сообщения: 4
- Зарегистрирован: 13 май 2026, 19:44
Re: Docker контейнер падает сразу после запуска как найти причину
@juniorredteam, простыня неплохая, но 139 забыл, это segfault. И 143 это SIGTERM от оркестратора, не ошибка приложения, тоже полезно знать. По формату подозрительно похоже на копипасту из чатгпт, ну да ладно, коды хотя бы верные.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
- Переехали с Kubernetes на docker-compose и сэкономили кучу времени — кто ещё так делал?
16 ответов · 1287 просмотров
-
- *arr-стек на сидбоксе через gluetun: VPN падает — и весь docker-стек встаёт колом
14 ответов · 1035 просмотров
-
-
- Docker Compose окончательно мёртв? Все тащат в Kubernetes даже для трёх контейнеров
10 ответов · 936 просмотров
-
- Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
17 ответов · 829 просмотров
Похожие запросы:
docker compose как пользоватьсякак написать dockerfileкак уменьшить размер docker образачто такое docker hub и как им пользоватьсякак собрать docker образ из dockerfiledocker compose up как запустить контейнеры
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость