Docker Compose#
Docker Compose управляет контейнерами, запускает их вместе, в нужной последовательности, необходимой для вашего приложения
Docker-compose написан в формате YAML который по своей сути похож на JSON или XML. Но YAML имеет более удобный формат для его чтения, чем вышеперечисленные. В формате YAML имеют значения пробелы и табуляции, именно пробелами отделяются названия параметров от их значений.
YAML — «дружественный» формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данных многих языков программирования.
В трактовке названия отражена история развития: на ранних этапах YAML расшифровывался как Yet Another Markup Language (“Ещё один язык разметки”) и даже позиционировался как конкурент XML, но позже был переименован с целью акцентировать внимание на данных, а не на разметке документов.
Проекты обычно включают в себя целый набор совместно работающих приложений.
Если для обеспечения функционирования проекта используется несколько сервисов, то Docker Compose может пригодиться. Например, в ситуации, когда создают веб-сайт, которому, для выполнения аутентификации пользователей, нужно подключиться к базе данных. Подобный проект может состоять из двух сервисов — того, что обеспечивает работу сайта, и того, который отвечает за поддержку базы данных. Технология Docker Compose позволяет, с помощью одной команды, запускать множество сервисов.
Разница между Docker и Docker Compose
Docker применяется для управления отдельными контейнерами (сервисами), из которых состоит приложение.
Docker Compose используется для одновременного управления несколькими контейнерами, входящими в состав приложения. Этот инструмент предлагает те же возможности, что и Docker, но позволяет работать с более сложными приложениями.
Сценарий описывается в docker-compose.yml
С docker-compose.yml все параметры, ранее записываемые в командной строке при запуске контейнера переносятся в конфигурационный YAML файл
Например:
version: '3'
services:
app:
build:
context: .
ports:
- 8080:80
volumes:
- .:/var/www/html
Примеры#
Все примеры выполнять на виртуальной машине BR-SRV
“Веб приложение на python”#
Выполнить пример со страницы
nginx и apache#
Настроить веб-сервера nginx и apache на одном узле и функционирующих в разных контейнерах. Nginx выполняется прием запросов и обработку статических данных, динамический контент обрабатывается apache.