Рокки Линукс 8

Введение

Docker упрощает процесс управления процессами приложений в контейнерах. Хотя контейнеры в некотором смысле похожи на виртуальные машины, они более легкие и экономичные. Это позволяет разработчикам разбить среду приложения на несколько изолированных сервисов.

Для приложений, зависящих от нескольких сервисов, согласование всех контейнеров для совместного запуска, взаимодействия и завершения работы может быстро стать громоздким. Docker Compose — это инструмент, который позволяет запускать среды с несколькими контейнерами приложений на основе определений, заданных в файле YAML. Он использует определения сервисов для создания полностью настраиваемых сред с несколькими контейнерами, которые могут совместно использовать сети и объемы данных.

В этом руководстве вы продемонстрируете, как установить Docker Compose на сервер Rocky Linux 8 и как начать использовать этот инструмент.

Предварительные условия

Чтобы следовать этой статье, вам понадобится:

  • Доступ к локальному компьютеру Rocky Linux 8 или серверу разработки от имени пользователя без полномочий root с привилегиями sudo. Если вы используете удаленный сервер, желательно установить активный брандмауэр. Чтобы настроить их, обратитесь к нашему Руководству по первоначальной настройке сервера для Rocky Linux 8.
  • Docker установлен на вашем сервере или локальном компьютере, следуя Steps 1 and 2 статьи «Как установить и использовать Docker в Rocky Linux 8».

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

Чтобы убедиться, что вы получаете самую последнюю стабильную версию Docker Compose, загрузите это программное обеспечение из официального репозитория Docker.

Сначала давайте обновим базу данных пакетов:

Затем добавьте официальный репозиторий Docker, если вы не сделали этого во время установки Docker:

Хотя в Docker нет специального репозитория Rocky Linux, Rocky Linux основан на CentOS и может использовать тот же репозиторий. Теперь вы можете установить Docker Compose, плагин для Docker:

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

Вы увидите вывод, похожий на этот:

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

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

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

Начните с создания нового каталога в вашей домашней папке и затем перейдите в него:

В этом каталоге настройте папку приложения, которая будет служить корнем документов для вашей среды Nginx:

Используя предпочитаемый вами текстовый редактор, создайте новый файл index.html в папке app :

Поместите в этот файл следующее содержимое:

~/compose-demo/app/index.html

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

Затем создайте файл docker-compose.yml :

Вставьте следующее содержимое в файл docker-compose.yml :

docker-compose.yml

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

Затем у вас есть блок services , в котором вы настраиваете службы, являющиеся частью этой среды. В вашем случае у вас есть один сервис под названием web . Этот сервис использует образ nginx:alpine и настраивает перенаправление портов с помощью ports . Все запросы к порту 8000 host компьютера (системы, на которой вы запускаете Docker Compose) будут перенаправлены в web контейнер на порту 80 , где будет работать Nginx.

Директива volumes создаст общий том между хост-компьютером и контейнером. При этом локальная папка app будет использоваться совместно с контейнером, а том будет расположен в /usr/share/nginx/html внутри контейнера, что затем перезапишет корень документа по умолчанию для Nginx.

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

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

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

Имея файл docker-compose.yml , вы можете запустить Docker Compose, чтобы запустить свою среду. Следующая команда загрузит необходимые образы Docker, создаст контейнер для web службы и запустит контейнерную среду в фоновом режиме:

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

Note: Если вы столкнулись с ошибкой разрешения, связанной с сокетом Docker, это означает, что вы пропустили шаг 2 инструкции «Как установить и использовать Docker в Rocky Linux 8». Вернувшись назад и выполнив этот шаг, вы получите разрешения на запуск команд Docker без sudo .

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

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

Теперь вы можете получить доступ к демонстрационному приложению, указав в браузере либо localhost:8000 если вы запускаете эту демонстрацию на своем локальном компьютере, либо your_server_domain_or_IP :8000 , если вы запускаете эту демонстрацию на удаленном сервере.

Вы увидите такую страницу:

Демонстрационная страница Docker Compose

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

На следующем шаге вы увидите, как управлять контейнерной средой с помощью команд Docker Compose.

Шаг 4. Знакомство с командами Docker Compose

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

Чтобы проверить журналы, созданные вашим контейнером Nginx, вы можете использовать команду logs :

Вы увидите вывод, похожий на этот:

Если вы хотите приостановить выполнение среды без изменения текущего состояния ваших контейнеров, вы можете использовать:

Чтобы возобновить выполнение после паузы:

Команда stop прекратит выполнение контейнера, но не уничтожит никакие данные, связанные с вашими контейнерами:

Если вы хотите удалить контейнеры, сети и тома, связанные с этой контейнерной средой, используйте команду down :

Обратите внимание, что это не приведет к удалению базового образа, используемого Docker Compose для разгона вашей среды (в вашем случае nginx:alpine ). Таким образом, всякий раз, когда вы снова запускаете свою среду с помощью docker compose up , процесс будет намного быстрее, поскольку образ уже находится в вашей системе.

Если вы также хотите удалить базовый образ из вашей системы, вы можете использовать:

Note . Более подробную информацию о командах Docker можно найти в нашем руководстве «Как установить и использовать Docker».

Заключение

В этом руководстве вы узнали, как установить Docker Compose и настроить контейнерную среду на основе образа веб-сервера Nginx. Вы также увидели, как управлять этой средой с помощью команд Compose.

Полную информацию обо всех доступных командах docker compose можно найти в официальной документации.