Контейнер не запускается
Сломай-почини · Среднее · 25 мин · 160 баллов
Контейнер не запускается
На сервере должен работать контейнер web (Docker), но он не поднимается: в docker ps
его нет, а в docker ps -a он в статусе Exited/Restarting — крутится в цикле падений.
Задача
Сделай так, чтобы:
- контейнер
webбыл запущен и стабильно работал (docker psпоказываетUp); - причина падения была устранена (конфиг/переменные/порт/том), а не отключён рестарт;
- сервис внутри контейнера отвечал на опубликованном порту (
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-ВМ для задания — обычно пара секунд. После работы её можно остановить.