
Docker — это платформа контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде портативных, самодостаточных контейнеров, которые могут работать практически где угодно.
Docker Compose — это инструмент, позволяющий определять и координировать многоконтейнерные Docker-приложения. Он использует YAML-файл для настройки контейнеров, сетей и томов приложения.
Compose можно использовать для различных целей. Наиболее популярные варианты использования Docker Compose — развёртывание приложений на одном хосте, автоматическое тестирование и локальная разработка.
В этом руководстве объясняется, как установить последнюю версию Docker Compose в Debian 10, Buster. Мы также рассмотрим основные концепции и команды Docker Compose.
Предпосылки
Прежде чем продолжить, убедитесь, что выполнены следующие предварительные условия:
- Выполнен вход как пользователь с привилегиями sudo .
- На вашем компьютере Debian 10 установлен Docker .
Установка Docker Compose на Debian 10
Установочный пакет Docker Compose доступен в официальных репозиториях Debian 10, но его версия может быть не всегда последней. Рекомендуется устанавливать Docker Compose из репозитория Docker на GitHub.
На момент написания этой статьи последней стабильной версией Docker Compose была версия 1.23.1 . Перед загрузкой исполняемого файла Compose посетите страницу релиза репозитория Compose на GitHub и проверьте, доступна ли новая версия для загрузки.
Для установки последней версии Docker Compose в Debian 10 выполните следующие действия:
-
Загрузите двоичный файл Docker Compose в каталог
/usr/local/binс помощьюwgetили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 -
Используйте
chmod, чтобы сделать исполняемый файл Compose:sudo chmod +x /usr/local/bin/docker-compose -
Для проверки установки используйте следующую команду, которая выведет версию Compose:
docker-compose --versionВывод будет выглядеть примерно так:
docker-compose version 1.23.1, build b02f1306
Начало работы с Docker Compose
В этом разделе мы покажем, как настроить локальную среду разработки WordPress с помощью Docker Compose.
Создайте каталог для проекта и перейдите в него :
mkdir wordpress_app && cd wordpress_app
Откройте текстовый редактор и создайте файл с именем docker-compose.yml :
nano docker-compose.yml
Вставьте следующее содержимое:
docker-compose.yml
version : '3.7' services : db : image : mysql:8.0 command : -- default-authentication-plugin=mysql_native_password 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:8.0. Если образ отсутствует, Compose загрузит его из публичного репозитория Docker Hub. Строка, начинающаяся сcommandпереопределяет команду по умолчанию. - Политика «
restart: alwaysпредписывает Compose перезапустить контейнер в случае его сбоя. - Контейнер будет использовать именованный том
db_dataдля сохранения базы данных. - Определяет переменные среды для образа
mysql:8.0.
Сервис wordpress :
- Использует изображение
wordpress. - Монтирует каталог
wp_dataна хосте в/var/lib/mysqlвнутри контейнера. - Перенаправляет открытый порт
80на контейнере на порт8080на хост-машине. - Определяет переменные среды для изображения
wordpress. - Инструкция
depends_onопределяет зависимость между двумя службами. В этом примереdbбудет запущена доwordpress.
Из каталога проекта запустите стек WordPress, выполнив следующую команду:
docker-compose up
Вывод должен выглядеть примерно так:
... ] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. db_1_99946702ac7e | 2019-12-15T21:37:29.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060 ...
Docker Compose извлечет изображения, запустит контейнеры и создаст каталог wp_data в каталоге вашего проекта.
Введите http://0.0.0.0:8080/ в своем браузере, и вы увидите стандартный экран установки WordPress.
На этом этапе приложение WordPress готово к работе, и вы можете приступить к работе над ним.
Чтобы остановить создание сообщения, нажмите CTRL+C .
Вы также можете запустить Compose в отсоединенном режиме, используя опцию -d :
docker-compose up -d
Для просмотра запущенных Docker-контейнеров используйте следующую команду:
docker-compose ps
Name Command State Ports ------------------------------------------------------------------------------------------------------ wordpress_app_db_1_99946702ac7e docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp wordpress_app_wordpress_1_a428d8408817 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 10, просто загрузите двоичный файл в каталог по системному пути и сделайте его исполняемым.
Если у вас есть вопросы, пожалуйста, оставьте комментарий ниже.
docker debian Не используете Debian 10?
Выберите другую ОС: центос 7 дебиан 10 убунту 18.04 убунту 20.04
Связанные руководства
- Как установить и использовать Docker в Debian 10 Linux
- Как установить и использовать Docker Compose в Debian 9
- Как установить и использовать Docker в Debian 9
- Как установить TensorFlow на Debian 10
- Как установить Apache Cassandra на Debian 10 Linux
- Как установить Jenkins на Debian 10 Linux
- Как установить MongoDB на Debian 10 Linux