Поиск по сайту:

Начало работы с Docker Compose в Linux

Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker в Linux. В Compose мы используем файл YAML для настройки служб нашего приложения. А дальше создаём и запускаем все сервисы из конфигурации одной командой. Вот простая графическая иллюстрация, показывающая, как работает компоновка Docker.

Как работает Docker Compose — графическая иллюстрация

Docker Compose представляет собой трехэтапный процесс:

  1. Во-первых, нам нужно определить среду приложения с помощью Dockerfile, чтобы ее можно было повторно использовать.
  2. Во-вторых, мы определяем службы, составляющие приложение, в docker-compose.yml, чтобы их можно было запускать вместе в изолированной среде.
  3. Наконец, мы запускаем команду docker-compose up, и Compose запустит и запустит все ваше приложение.

Начало работы с Docker Compose в Linux

Docker Compose можно установить двумя способами. Инструкции по установке можно найти в разделе "Установка Docker Compose" по следующим ссылкам.

  • Как установить Docker в Ubuntu
  • Как установить Docker в CentOS

После установки проверьте версию Docker Compose с помощью команд:

docker-compose -version

Или,

docker-compose -v

Или,

docker-compose --version

Проверьте версию Docker Compose

Чтобы получить помощь, просто запустите:

docker-compose -help

Эта команда выведет список команд, которые может выполнять Docker Compose.

Docker Compose, помощь

Теперь давайте в качестве примера возьмем простой файл компоновки Docker. Вот содержимое моего файла компоновки.

Пример файла компоновки Docker

Вышеупомянутый файл компоновки докера — это минимальный файл для понимания основного содержимого внутри файла компоновки.

Мы можем проверить достоверность файла с помощью команды:

docker-compose config

Проверьте достоверность файла компоновки Docker

Если вы укажете неверную версию в файле компоновки Docker, вы получите сообщение об ошибке.

Сообщение об ошибке создания файла Docker

Теперь давайте запустим файл компоновки с помощью команды:

docker-compose up -d

Он запустит все службы с помощью одной команды.

Запустите Docker Compose

Чтобы просмотреть список запущенных контейнеров, созданных с помощью файла Compose, запустите:

docker-compose ps

Получение списка запущенных Docker-контейнеров

Мы можем закрыть приложение в любой момент с помощью следующей команды:

docker-compose down

Остановить докер-контейнеры

Мы также можем назначить nginx другой порт, например 8181.

Для этого просто определите порт в файле компоновки, как показано на следующем рисунке.

Определить порт контейнера nginx

Теперь nginx доступен через порт 8181. Давайте запустим контейнер и проверим, работает ли Nginx на порту 8181.

Запустить контейнер nginx

Откройте браузер и проверьте, работает ли он на порту 8181.

Проверьте контейнер nginx в веб-браузере

Если вы хотите масштабировать сервис, вы можете сделать это с помощью команды:

docker-compose up -d --scale database=3

Масштабируйте сервисы с помощью Docker Compose

Чтобы отобразить запущенные службы, запустите:

docker-compose top

Отображать запущенные службы с помощью Docker Compose

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

docker-compose stop
docker-compose start
docker-compose restart

Мы можем просмотреть журналы служб с помощью команды:

docker-compose logs

Показать логи сервисов

Сеть в docker-compose

Docker Compose по умолчанию настраивает единую сеть для вашего приложения. Каждый контейнер присоединяется к сети по умолчанию, и контейнеры смогут взаимодействовать в этой сети по умолчанию.

Однако вы можете создать новую сеть с помощью Compose, если вам не нужна сеть по умолчанию.

Для целей данного руководства я использую следующие три файла:

  1. Докерфайл
  2. docker-compose.yml
  3. сервер.py

Вот содержимое Dockerfile:

содержимое докер-файла

Содержимое docker-compose.yml:

Docker создает содержимое файла

Содержимое server.py:

содержимое файла приложения

Теперь создайте образ с помощью команды:

docker-compose build

После завершения сборки вы увидите следующий результат:

Создание образа докера

Как видите, изображение успешно построено. Вы можете проверить это с помощью команды:

docker images

Получение списка изображений Docker

Как видно из приведенного выше вывода, создается образ Docker с именем image1.

Теперь запустите файл компоновки:

docker-compose up -d

Запустите файл создания Docker

Проверьте, создана ли новая сеть или нет, с помощью команды:

docker network ls

Проверьте сеть докера

На приведенном выше снимке экрана мы можем подтвердить, что была создана новая сеть с именем dc_network_my-network.

Давайте проверим, запущен ли контейнер или нет, с помощью команды «docker ps»:

docker ps

вывод команды docker ps

Да, контейнер работает!

Наконец, запустите файл кода приложения (server.py) с помощью команды Curl:

curl localhost:15001

Или,

curl 10.26.35.244:15001

вывод приложения

Мы получаем выходные данные — Hello World с узла 1!, которые записаны в файле server.py. Это значит, что это работает!

Рекомендуем прочитать:

  • Преобразовать команды запуска Docker в файлы Docker-Compose
  • Объяснение концепций сети Docker
  • Объяснение томов Docker на примерах
  • Как автоматически обновлять работающие контейнеры Docker
  • ctop — инструмент мониторинга командной строки для контейнеров Linux
  • Portainer – самый простой способ управления Docker
  • PiCluster — простое веб-приложение для управления Docker
  • Dockly – управление контейнерами Docker из терминала

Об авторе:

Дхрув Тивари — инженер DevOps, который любит автоматизировать процессы, работать с Linux в больших масштабах и мечтает о том дне, когда системы станут достаточно умными, чтобы им никогда не приходилось входить в систему Linux. Путешествие CI/CD от исходного кода до развертывания кода в производство.

Ресурс:

  • Документация Docker Compose

Статьи по данной тематике