
Docker Compose — это инструмент, позволяющий определять и координировать многоконтейнерные Docker-приложения. Он использует YAML-файл для настройки контейнеров, сетей и томов приложения.
Compose можно использовать для различных целей. Наиболее популярные варианты использования Docker Compose — развёртывание приложений на одном хосте, автоматизированное тестирование и локальная разработка.
В этом руководстве мы рассмотрим процесс установки последней версии Docker Compose в Debian 9. Мы также рассмотрим основные концепции и команды Docker Compose.
Предпосылки
Прежде чем продолжить изучение этого руководства, убедитесь, что выполнены следующие предварительные условия:
- Выполнен вход как пользователь с привилегиями sudo .
- Установите Docker на свой компьютер Debian 9 .
Установка Docker Compose в Debian
Установочный пакет Docker Compose доступен в официальных репозиториях Debian 9, но его версия может быть не всегда последней. Рекомендуется установить Docker Compose из репозитория Docker на GitHub.
На момент написания этой статьи последней стабильной версией Docker Compose была версия 1.23.1 . Перед загрузкой исполняемого файла Compose посетите страницу релиза репозитория Compose на GitHub и проверьте, доступна ли новая версия для загрузки.
Чтобы установить последнюю версию Docker Compose в Debian 9, выполните следующие действия:
-
Начните с загрузки двоичного файла 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 -
После завершения загрузки предоставьте исполняемому файлу Compose права :
sudo chmod +x /usr/local/bin/docker-compose -
Подтвердите установку, введя:
docker-compose --versionВывод будет выглядеть примерно так:
docker-compose version 1.23.1, build b02f1306
Начало работы с Docker Compose
В этом разделе мы покажем, как использовать Docker Compose для управления стеком WordPress на вашем компьютере Debian 9.
Начните с создания каталога для проекта и перехода в него :
mkdir wordpress_appcd 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
Связанные руководства
- Как установить и использовать Docker в Debian 9
- Как установить и использовать Docker Compose в Debian 10 Linux
- Как установить и использовать Docker в Debian 10 Linux
- Как добавить пространство подкачки в Debian 9
- Как установить Apache Maven на Debian 9
- Как настроить FTP-сервер с VSFTPD в Debian 9
- Как установить и настроить Redis в Debian 9