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.
Ссылки