linux-labs

← Практика

Контейнер не запускается

Сломай-почини · Среднее · 25 мин · 160 баллов

Контейнер не запускается

На сервере должен работать контейнер web (Docker), но он не поднимается: в docker ps его нет, а в docker ps -a он в статусе Exited/Restarting — крутится в цикле падений.

Задача

Сделай так, чтобы:

  1. контейнер web был запущен и стабильно работал (docker ps показывает Up);
  2. причина падения была устранена (конфиг/переменные/порт/том), а не отключён рестарт;
  3. сервис внутри контейнера отвечал на опубликованном порту (curl к нему проходит).

Подсказки по подходу

  • Почему упал: docker ps -a (статус и код выхода), затем docker logs web — там обычно прямая причина (нет переменной окружения, не найден файл, занят порт).
  • Как контейнер запущен: docker inspect web (порты, тома, env, команда) — сверь с тем, что ожидает приложение.
  • Конфликт порта на хосте лови через ss -ltnp; проблему с томом — проверь путь на хосте.
  • Проверяй результат по кнопке «Проверить».

Всё нужное уже установлено (образ присутствует локально). Интернет на машине отсутствует — и не понадобится.

Подсказки

Подсказка 1

Посмотри статус и причину: docker ps -a (колонка STATUS, код выхода), затем docker logs web — последняя ошибка перед падением почти всегда называет причину.

Подсказка 2

Сопоставь с тем, как контейнер запущен: docker inspect web (Env, Mounts, Ports, Cmd). Типичное: не задана нужная переменная окружения, смонтирован несуществующий путь, или порт на хосте уже занят (ss -ltnp).

Подсказка 3

Устрани корень: пересоздай контейнер с верными параметрами (docker rm -f web, затем docker run ... с нужными -e/-v/-p) либо поправь том/конфиг на хосте. Не маскируй проблему политикой --restart. Проверь docker ps (Up) и curl к порту.

Поднимет вашу личную эфемерную Linux-ВМ для задания — обычно пара секунд. После работы её можно остановить.