Docker LinuxWindowsmacOS

Docker: exec format error при запуске контейнера

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Бинарный файл собран под другую архитектуру или нет shebang в скрипте. Пересоберите образ под нужную платформу.

В этой статье
  1. Что означает ошибка
  2. Причины и признаки
  3. Пошаговое решение
  4. Если проблема осталась

#Что означает ошибка

Сообщение
exec format error

Бинарный файл собран под другую архитектуру или нет shebang в скрипте. Пересоберите образ под нужную платформу.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Другая архитектураБинарник не соответствует архитектуре образа.Сверьте inspect и пересоберите под правильную архитектуру.
Нет shebangСтрока shebang отсутствует или неверна.Укажите установленный интерпретатор.
CRLFСценарий имеет окончания CRLF.Сохраните скрипт в LF и соберите заново.
Нет интерпретатораИнтерпретатор отсутствует в минимальном образе.Используйте установленную оболочку или добавьте требуемую зависимость.

#Пошаговое решение

  1. Определите архитектуру образа и хостаНа Linux-хосте выполните uname -m; затем docker image inspect ОБРАЗ --format "{{.Os}}/{{.Architecture}}", подставив используемый образ. Для ARM64/amd64 результат может различаться. Если контейнер не запускается, сохраните docker logs ИМЯ и строку ENTRYPOINT/CMD из Dockerfile.
  2. Проверьте исполняемый файл и скриптЕсли ENTRYPOINT — shell-скрипт, первая строка должна указывать реальный интерпретатор, например #!/bin/sh, установленный внутри образа. На Linux выполните file script.sh и проверьте окончания строк LF; CRLF после копирования из Windows может мешать запуску. Не делайте исполняемыми все файлы контейнера.
  3. Если архитектура не совпадает — пересоберите адресноПроверьте официальный образ для архитектуры хоста либо используйте docker buildx build --platform linux/arm64 -t myapp:arm64 --load . только на поддерживаемом сборщике и для соответствующего хоста. Укажите реальную платформу; эмуляция альтернативной архитектуры допустима не для всякой программы и может замедлять работу.
  4. Проверьте запуск после исправленияСоберите образ и запустите тестовый контейнер с отдельным именем, чтобы не затронуть рабочий сервис. Если ошибка сменилась на no such file or directory, убедитесь, что интерпретатор ENTRYPOINT действительно присутствует и файл скопирован в нужную папку.

#Если проблема осталась

Если «Docker: exec format error при запуске контейнера» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.