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

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

3 Января 2020 | CentOS

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

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

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

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

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

Убедитесь, что вы выполнили следующие условия, прежде чем продолжить:


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

Рекомендуемый метод установки Docker Compose в CentOS 7 - загрузка двоичного файла Compose из репозитория Docker's 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.
  • Использует always политику перезапуска, которая дает указание контейнеру всегда перезапускаться
  • Создает именованный том, db_data чтобы сделать базу данных постоянной.
  • Определяет переменные среды для образа mysql:5.7.

wordpress :

  • Использует wordpress образ. Если образ отсутствует в вашей системе, Compose извлечет его из общедоступного хранилища Docker Hub.
  • Использует 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.


    Комментарии

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

Загрузка комментариев...