docker compose run

Запускает одноразовую команду для службы.

Использование

$ docker compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]

Обратитесь к разделу параметров для обзора доступных OPTIONS для этой команды.

Описание

Запускает одноразовую команду для службы.

следующая команда запускает службу web и запускает bash в качестве своей команды:

$ docker compose run web bash

Команды, которые вы используете с запуском, запускаются в новых контейнерах с конфигурацией, определяемой конфигурацией службы, включая тома, ссылки и другие сведения. Однако есть два важных отличия:

Во-первых, команда, переданная run, переопределяет команду, определенную в конфигурации службы. Например, если конфигурация службы web запускается с bash , то docker compose run web python app.py переопределяет её с помощью python app.py .

Второе отличие состоит в том, что команда docker compose run не создаёт ни один из портов, указанных в конфигурации службы. Это предотвращает конфликты портов с уже открытыми портами. Если вы хотите, чтобы порты службы были созданы и сопоставлены с хостом, указывает --service-ports

$ docker compose run --service-ports web python manage.py shell

Кроме того, ручное сопоставление портов можно указывает с помощью параметров --publish или -p, как и при использовании docker run:

$ docker compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell

Если вы запускаете службу, настроенную с помощью ссылок, команда запуска сначала проверяет, работает ли связанная служба, и запускает службу, если она остановлена. Как только все связанные службы запущены, запуск выполняет переданную вами команду. Например, вы можете бежать:

$ docker compose run db psql -h db -U docker

Откроется интерактивная оболочка PostgreSQL для связанного контейнера db.

Если вы не хотите, чтобы команда запуска запускала связанные контейнеры, используйте флаг --no- deps:

$ docker compose run --no-deps web python manage.py shell

Если вы хотите удаляет контейнер после запуска с переопределением политики перезапуска контейнера, используйте флаг --rm:

$ docker compose run --rm web python manage.py db upgrade

Это запускает сценарий обновления базы данных и удаляет контейнер после завершения работы, даже если в конфигурации службы указана политика перезапуска.

Параметры

Имя, сокращенно

По умолчанию

Описание

--build

Собирает образ перед запуском контейнера.

--detach, -d

Запускает контейнер в фоновом режиме и распечатывает идентификатор контейнера

--entrypoint

Переопределить точку входа образа

--env, -e

Устанавливает переменные среды

--interactive, -i

true

Держите STDIN открытым, даже если он не подключен.

--label, -l

Добавляет или переопределите метку

--name

Присвойте имя контейнеру

--no-TTY, -T

true

Отключить выделение псевдо-TTY (по умолчанию: определяется автоматически).

--no-deps

Не запускать связанные службы.

--publish, -p

Опубликовать порт(ы) контейнера на хосте.

--quiet-pull

Pull без печати информации о ходе выполнения.

--rm

Автоматически удалять контейнер при его выходе

--service-ports

Выполняет команду с включенными портами службы и сопоставленными с хостом.

--tty, -t

true

Назначает псевдо-TTY.

--use-aliases

Используйте сеть useAliases службы в сетях, к которым подключается контейнер.

--user, -u

Запуск от имени указанного пользователя или uid

--volume, -v

Привязать монтирование тома.

--workdir, -w

Рабочий каталог внутри контейнера

Родительская команда

Команда

Описание

docker compose

Docker Compose