Docker compose — это инструмент, который автоматически устанавливается при установке Docker на вашем компьютере.

Docker Compose автоматизирует некоторые команды CLI и позволяет подключать и запускать несколько контейнеров Docker.

Он использует файл yml, предназначенный для создания, подключения к сети и запуска контейнеров докеров, необходимых для проекта. Затем файл yml будет выполняться сценарием docker-compose и анализировать инструкции для настройки контейнеров и соединений. В каталоге проекта создайте файл docker-compose.yml:

> touch docker-compose.yml

Файл yml использует специальный синтаксис для выполнения команд сборки и запуска.

Встраивая образы докеров в один и тот же файл docker-compose, docker compose автоматически предоставляет доступ между контейнерами.

Поднять и --создать

Docker-compose запускает и создает контейнеры с помощью команд, отличных от традиционного скрипта docker. Например, вместо использования команды запуска для создания контейнера используется docker-compose. Данную команду следует выполнить из каталога проекта с файлом docker-compose.yml:

> docker-compose up

Точно так же Docker-compose упрощает процесс сборки и запуска за счет использования одной и той же команды up и получения флага - -build.

> docker-compose up --build

Дополнительные команды

Отключить

Иногда было бы неплохо запустить контейнер в фоновом режиме, освобождая ваш терминал для дальнейших команд. В этих случаях вы можете использовать флаг -d или отсоединиться, чтобы запустить процесс в фоновом режиме.

> docker-compose up -d

Вниз

Чтобы остановить процессы, вы можете использовать команду down:

> docker-compose down

Как и прежде, вы должны находиться в каталоге, где находится файл docker-compose.yml, чтобы эта команда вступила в силу для экземпляров контейнера, управляемых Docker Compose.

PS

> docker-compose ps

Политики перезапуска

В реальных приложениях возможен сбой контейнера и завершение запущенного процесса. Docker Compose предоставляет разработчикам несколько вариантов автоматизации реагирования на сбои, известных как политики перезапуска. Эти политики перезапуска: нет, всегда, при сбое и без остановки. К счастью, значение этих политик легко понять: «нет» означает, что контейнер никогда не должен перезапускаться, и это значение по умолчанию; всегда означает, что контейнер всегда должен перезапускаться; on-сбой означает, что контейнер должен быть перезапущен, если сбой приводит к ненулевому коду ошибки; а unless-stopped означает, что контейнер всегда будет перезапускаться, если разработчик не остановил его вручную.

Docker Compose управляет каждой службой (контейнером) отдельно, и, следовательно, каждая служба имеет собственную политику перезапуска, управляемую в файле docker-compose.yml.

Ссылки