Как установить и использовать Docker Compose в CentOS 7

Установка и использование Docker Compose на CentOS 7

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

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

Compose можно использовать для различных целей, таких как развертывание приложений на одном хосте, автоматизированное тестирование и локальная разработка.

В этом руководстве мы покажем вам, как установить последнюю версию Docker Compose на CentOS 7. Мы также рассмотрим основные концепции и команды Docker Compose.

Предпосылки

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

Установка Docker Compose на CentOS

Рекомендуемый метод установки Docker Compose в CentOS 7 — загрузка двоичного файла Compose из репозитория Docker на GitHub.

На момент написания этой статьи последней стабильной версией Docker Compose была версия 1.23.1 . Перед загрузкой исполняемого файла Compose посетите страницу релиза репозитория Compose на GitHub и проверьте, доступна ли новая версия для загрузки.

Чтобы установить Docker Compose на CentOS 7, выполните следующие шаги:

  1. Начните с загрузки двоичного файла Docker Compose в каталог /usr/local/bin с помощью следующей команды curl :

     sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. После завершения загрузки сделайте исполняемый файл , введя:

     sudo chmod +x /usr/local/bin/docker-compose
  3. Для проверки установки введите следующую команду для печати версии Compose:

     docker-compose --version

    Вывод будет выглядеть примерно так:

     docker-compose version 1.23.1, build b02f1306

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

В этом разделе мы покажем, как использовать Docker Compose для запуска стека WordPress на компьютере CentOS 7.

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

 mkdir my_app && cd my_app

Затем создайте файл с именем docker-compose.yml внутри каталога проекта:

 nano docker-compose.yml

Вставьте следующее содержимое:

docker-compose.yml

 version : '3.3'  services :   db :     image : mysql:5.7     restart : always     volumes :       - db_data:/var/lib/mysql     environment :       MYSQL_ROOT_PASSWORD : password       MYSQL_DATABASE : wordpress    wordpress :     image : wordpress     restart : always     volumes :       - ./wp_data:/var/www/html     ports :       - "8080:80"     environment :       WORDPRESS_DB_HOST : db:3306       WORDPRESS_DB_NAME : wordpress       WORDPRESS_DB_USER : root       WORDPRESS_DB_PASSWORD : password     depends_on :        - db  volumes :     db_data :     wp_data : 

Давайте проанализируем код строка за строкой.

Первая строка указывает версию файла Compose . Существует несколько различных версий формата файла Compose, поддерживающих определённые версии Docker.

Далее мы определяем две службы: db и wordpress . Каждая служба запускает один образ и создаёт отдельный контейнер при запуске docker-compose.

Служба db :

  • Использует образ mysql:5.7 . Если образ отсутствует в вашей системе, Compose загрузит его из публичного репозитория Docker Hub.
  • Использует политику «restart always , которая предписывает контейнеру всегда перезапускаться.
  • Создает именованный том db_data , чтобы сделать базу данных постоянной.
  • Определяет переменные среды для образа mysql:5.7 .

Сервис wordpress :

  • Использует образ wordpress . Если образ отсутствует в вашей системе, Compose загрузит его из публичного репозитория Docker Hub.
  • Использует политику «restart always , которая предписывает контейнеру всегда перезапускаться.
  • Монтирует каталог wp_data на хосте в /var/lib/mysql внутри контейнера.
  • Перенаправляет открытый порт 80 на контейнере на порт 8080 на хост-машине.
  • Определяет переменные среды для изображения wordpress .
  • Инструкция depends_on определяет зависимость между двумя службами. В этом примере db будет запущена до wordpress .

Из каталога проекта запустите приложение WordPress с помощью следующей команды:

 docker-compose up

Вывод должен выглядеть примерно так:

 ... wordpress_1 | [Sat Oct 13 21:30:48.286382 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations wordpress_1 | [Sat Oct 13 21:30:48.286425 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

Compose извлечет оба изображения, запустит два контейнера и создаст каталог wp_data в каталоге вашего проекта.

Откройте браузер, введите http://0.0.0.0:8080/ , и вы увидите экран установки WordPress.

На этом этапе приложение WordPress готово к работе, и вы можете начать работу над своей темой или плагином.

Чтобы остановить Compose, нажмите CTRL+C . переменные среды Если вы хотите запустить Compose в отсоединенном режиме, используйте флаг -d :

 docker-compose up -d

Для проверки запущенных служб используйте опцию ps :

 docker-compose ps
 Name Command State Ports ---------------------------------------------------------------------------------- my_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp my_app_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp

Когда Compose работает в отсоединенном режиме, для остановки служб используйте:

 docker-compose stop

Чтобы полностью удалить контейнеры, используйте опцию down :

 docker-compose down

Передача ключа --volumes также удалит тома данных:

 docker-compose down --volumes

Удаление Docker Compose

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

 sudo rm /usr/local/bin/docker-compose

Заключение

Вы узнали, как установить и использовать Docker Compose на CentOS 7.

Если у вас есть вопросы, пожалуйста, оставьте комментарий ниже.

docker centos Не используете CentOS 7?
Выберите другую ОС:
дебиан 10 дебиан 9 убунту 18.04 убунту 20.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *