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

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

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

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

В этом руководстве мы рассмотрим процесс установки последней версии Docker Compose в Debian 9. Мы также рассмотрим основные концепции и команды Docker Compose.

Предпосылки

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

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

Установочный пакет Docker Compose доступен в официальных репозиториях Debian 9, но его версия может быть не всегда последней. Рекомендуется установить Docker Compose из репозитория Docker на GitHub.

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

Чтобы установить последнюю версию Docker Compose в Debian 9, выполните следующие действия:

  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. После завершения загрузки предоставьте исполняемому файлу Compose права :

     sudo chmod +x /usr/local/bin/docker-compose
  3. Подтвердите установку, введя:

     docker-compose --version

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

     docker-compose version 1.23.1, build b02f1306

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

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

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

 mkdir wordpress_app cd wordpress_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_70f2f980e1fb | [Mon Nov 19 18:00:31.002748 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.12 configured -- resuming normal operations wordpress_1_70f2f980e1fb | [Mon Nov 19 18:00:31.002912 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

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

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

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

Чтобы остановить создание сообщения, нажмите CTRL+C .

Вы также можете запустить Compose в отсоединенном режиме, передав флаг -d .

 docker-compose up -d

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

 docker-compose ps
 Name Command State Ports ---------------------------------------------------------------------------------- wordpress_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp wordpress_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 в Debian 9. Если у вас есть вопросы, оставьте комментарий ниже.

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

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

Источник

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

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