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
    

Если у вас остались вопросы — задавайте их в чате курса!