FAQ: использование Docker на курсе
В этом разделе собраны наиболее распространённые проблемы, связанные с Docker, и способы их устранения.
Контейнер не запускается
Причина: Docker Desktop не запущен или произошла ошибка при сборке образа.
Решение:
-
Убедитесь, что Docker Desktop запущен. Проверьте командой:
docker infoЕсли команда завершается ошибкой, запустите Docker Desktop.
-
Попробуйте пересобрать контейнер:
docker-compose down && docker-compose up --build -
Проверьте логи контейнера для диагностики:
docker-compose logs
Ошибка Port 3000 is already in use
Причина: Порт 3000 уже занят другим процессом.
Решение:
-
Определите, какой процесс использует данный порт:
lsof -i :3000 -
Завершите его работу командой:
kill -9 PIDгде
PID— идентификатор процесса из вывода предыдущей команды. -
Если ситуация повторяется, измените порт в файле
docker-compose.yml:services: api: ports: - "3001:3000"В этом случае API будет доступен по адресу
http://localhost:3001.
Как перезапустить контейнер
Если json-server работает некорректно или данные выглядят повреждёнными, перезапустите контейнер:
docker-compose down && docker-compose up
Флаг -d позволяет запустить контейнер в фоновом режиме:
docker-compose up -d
Как просмотреть логи контейнера
Для просмотра логов json-server выполните:
docker-compose logs
Или для непрерывного вывода логов в реальном времени:
docker-compose logs -f
Как сбросить данные к исходному состоянию
json-server хранит все данные в файле db.json. Если в процессе работы данные были изменены и вы хотите вернуть их к исходному виду:
-
Остановите контейнер:
docker-compose down -
Верните файл
db.jsonк исходному состоянию:git checkout db.json -
Запустите контейнер заново:
docker-compose up
Если репозиторий был изменён значительно, можно склонировать его заново:
git clone https://github.com/EnderWarik/vue-course-backend.git
Команды npm внутри контейнера завершаются ошибкой Operation is not permitted
Причина: Недостаточные права доступа к файлам на macOS.
Решение:
-
Проверьте, выдан ли полный доступ к диску для терминала в Настройки > Конфиденциальность и безопасность > Доступ к диску.
-
Если проблема сохраняется, попробуйте:
sudo chmod -R 777 /path/to/project
Если у вас остались вопросы — задавайте их в чате курса!