Docker Compose run: выполнить разовую команду сервиса

Категория: docker · Язык: Bash · Обновлено:

docker compose run создаёт временный контейнер по конфигурации сервиса и запускает другую команду. Это удобно для миграции, shell или management task без изменения основного процесса приложения.

Рабочий пример

Bash
docker compose run --rm api python manage.py migrate
docker compose run --rm --no-deps api python manage.py check
docker compose ps

--rm удаляет контейнер после завершения. --no-deps пропускает связанные сервисы, если они уже работают; без него Compose может попытаться поднять зависимости.

Частый вопрос

Чем run отличается от exec?

run создаёт новый одноразовый контейнер, а exec запускает команду в уже работающем. Для диагностики процесса обычно нужен exec.