Как правильно установить 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
- Для на начала перейдите на страницу релизов (https://github.com/docker/compose/tags) официального репозитория docker compose, далее выберете один из последних релизов, который имеет схожее название с "docker-compose-linux-x86_64"
- Далее копируем ссылку на него и формируем команду для установки, в моем случае команда будет выглядеть следующим образом:
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
- После нужно выдать разрешение на исполнение для docker compose, команда:
chmod +x ~/.docker/cli-plugins/docker-compose
- Теперь, убедимся, что плагин установлен, для этого введем команду:
docker compose version
Если все установлено правильно, то в терминале напечает версию установленного плагина Поздравляем! Docker Compose успешно установлен в вашей системе.
В следующем разделе вы увидите, как настроить docker-compose и запустить контейнерную среду с помощью этого инструмента.
Шаг 2 — Настройка файла конфигурации docker-compose.yml
Чтобы продемонстрировать, как настроить docker-compose.yml файл и работать с Docker Compose, мы создадим среду веб-сервера, используя официальный образ Nginx из Docker Hub , общедоступного реестра Docker. Эта контейнерная среда будет обслуживать один статический HTML-файл.- Начните с создания нового каталога в вашей домашней папке и затем перейдите в него:
mkdir ~/compose-demo cd ~/compose-demo
- В этом каталоге создайте директорию приложения, которая будет служить корнем документов для вашей среды Nginx:
mkdir app
- Используя предпочитаемый вами текстовый редактор, создайте новый index.html файл в директории app, я использую текстовый редактор nano:
nano app/index.html
- Поместите в этот файл следующее содержимое:
<!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 для подтверждения.
- Далее создайте 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