Как установить Docker Compose на Ubuntu 22.04

Как правильно установить Docker Compose на Ubuntu 22.04

Введение

Docker Compose позволяет определить несколько контейнеров в один стек и запустить с их с помощью всего одной команды. С помощью конфигурационного YAML-файла можно описать все необходимые сервисы и их конфигурацию. Это сильно упрощает процесс разработки, тестирования и развертывания системы, состоящей из множества контейнеров.

В данном гайде показано как установить Docker Compose на операционную систему Ubuntu 22.04 Для его работы требуется установить сам docker, о том как это сделать написано в нашей статье: Как установить и использовать Docker на Ubuntu 22.04

Примечание. Старые версии Docker Compose используют синтаксис docker-compose при вызове своих команд, но начинает Docker перешел на использование команды с пробелом вместо дефиса docker compose

Шаг 1 — Установка Docker Compose

  1. Для на начала перейдите на страницу релизов (https://github.com/docker/compose/tags) официального репозитория docker compose, далее выберете один из последних релизов, который имеет схожее название с "docker-compose-linux-x86_64"
  2. Далее копируем ссылку на него и формируем команду для установки, в моем случае команда будет выглядеть следующим образом: 
        mkdir -p ~/.docker/cli-plugins/ && curl -SL https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
  3. После нужно выдать разрешение на исполнение для docker compose, команда:
    chmod +x ~/.docker/cli-plugins/docker-compose
  4. Теперь, убедимся, что плагин установлен, для этого введем команду:
    docker compose version

Если все установлено правильно, то в терминале напечает версию установленного плагина Поздравляем! Docker Compose успешно установлен в вашей системе.

В следующем разделе вы увидите, как настроить docker-compose и запустить контейнерную среду с помощью этого инструмента. 

Шаг 2 — Настройка файла конфигурации docker-compose.yml

Чтобы продемонстрировать, как настроить docker-compose.yml файл и работать с Docker Compose, мы создадим среду веб-сервера, используя официальный образ Nginx из Docker Hub , общедоступного реестра Docker. Эта контейнерная среда будет обслуживать один статический HTML-файл.
  1.  Начните с создания нового каталога в вашей домашней папке и затем перейдите в него:
    mkdir ~/compose-demo
    cd ~/compose-demo
  2. В этом каталоге создайте директорию приложения, которая будет служить корнем документов для вашей среды Nginx:
    mkdir app
  3. Используя предпочитаемый вами текстовый редактор, создайте новый index.html файл в директории app, я использую текстовый редактор nano:
    nano app/index.html

     

  4. Поместите в этот файл следующее содержимое:
    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Docker Compose</title>
      <link rel="stylesheet" 
    </head>
    <body>
    
      <h1>This is a Docker Compose Demo Page.</h1>
      <p>Hello World!</p>
    
    </body>
    </html>

    Сохраните и закройте файл, когда закончите. Если вы используете nano, вы можете сделать это, набрав CTRL+X, а затем Y и ENTER для подтверждения.

  5. Далее создайте docker-compose.yml файл со следующим содержимым:
    version: '3.7'
    services:
      web:
        image: nginx:alpine
        ports:
          - "8000:80"
        volumes:
          - ./app:/usr/share/nginx/html

    Сохраните и закройте файл.

Файл docker-compose.yml обычно начинается с указания версии в version. Это сообщит Docker Compose, какую версию конфигурации вы используете.

Затем идёт блок services, в котором вы настраиваете контейнеры для сервисов, являющихся частью этого приложения. В вашем случае у вас есть один сервис под названием web. Этот контейнер использует nginx:alpine образ и настраивает перенаправление портов с помощью ports параметра. Все запросы к порту 8000 на домашней системе будут перенаправлены в контейнер web на порт 80, где их будет обрабатывать Nginx.иректива volumes создаст общий том между хост-компьютером и контейнером. При этом локальная app папка будет использоваться совместно с контейнером, а том будет расположен /usr/share/nginx/html внутри контейнера, что затем перезапишет корень документа по умолчанию для Nginx.

Вы настроили демонстрационную страницу и файл конфигации docker-compose.yml для создания контейнерной среды веб-сервера, которая будет ее обслуживать. На следующем шаге вы создадите эту среду с помощью Docker Compose.

Шаг 3 — Запуск Docker Compose

Теперь, все готово к запуску, вы можете поднять стек с помощью команды с флагом -d:

docker compose -d

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

Docker Compose сначала найдет указанный образ в вашей локальной системе, и если он не сможет найти образ, он загрузит его из Docker Hub. Вы увидите такой вывод:

Creating network "compose-demo_default" with the default driver
Pulling web (nginx:alpine)...
alpine: Pulling from library/nginx
cbdbe7a5bc2a: Pull complete
10c113fb0c77: Pull complete
9ba64393807b: Pull complete
c829a9c40ab2: Pull complete
61d685417b2f: Pull complete
Digest: sha256:57254039c6313fe8c53f1acbf15657ec9616a813397b74b063e32443427c5502
Status: Downloaded newer image for nginx:alpine
Creating compose-demo_web_1 ... done

Примечание. Если вы столкнулись с ошибкой разрешения в отношении сокета Docker, это означает, что вы пропустили установку самого docker, вы можете ознакомиться с нашей статьей по данной теме: Как установить и использовать Docker на Ubuntu 22.04

Теперь ваша среда запущена и работает в фоновом режиме. Чтобы убедиться, что контейнер активен, вы можете запустить:

docker compose ps

Эта команда покажет вам информацию о запущенных контейнерах и их состоянии, а также о любых существующих в данный момент перенаправлениях портов.

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

localhost:8000 - если развернули стек и открываете на одной системе Сервер_IP:8000 - если стек развернули на удаленном сервере

Общий том, который вы настроили внутри docker-compose.yml файла, обеспечивает синхронизацию файлов вашей директории app с корнем документа контейнера. Если вы внесете какие-либо изменения в index.html файл, они будут автоматически подхвачены контейнером и, таким образом, отражены в вашем браузере при перезагрузке страницы.

Заключение

В этом гайде мы рассмотрели процесс установки Docker Compose на Ubuntu 22.04, а также создание и запуск контейнеров с его помощью. Вы научились настраивать конфигурационный файл docker-compose.yml для запуска веб-сервера Nginx, который обслуживает статический HTML-файл. Теперь вы можете применять эти знания для создания и управления более сложными контейнерными средами, что значительно упростит процесс разработки, тестирования и развертывания приложений.

Docker Compose — мощный инструмент, который экономит время и усилия, позволяя вам сосредоточиться на написании кода, а не на управлении инфраструктурой. Используйте этот инструмент для ускорения процессов в ваших проектах и повышения эффективности работы с контейнерами.

Если у вас возникнут вопросы или проблемы с установкой Docker Compose, вы всегда можете обратиться к официальной документации или нашей статье по установке Docker на Ubuntu 22.04. Удачи в ваших проектах!

Дата создания публикации:

Теги: docker

Прочтений: 427