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.

Решение