Docker — это платформа для контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых самодостаточных контейнеров, которые могут работать практически где угодно.
Docker Compose — это инструмент, который позволяет определять и организовывать мультиконтейнерные приложения Docker. Он использует YAML-файл для настройки контейнеров, сетей и томов приложения.
Compose может быть использован для различных целей. Развертывание приложений на одном хосте, автоматическое тестирование и локальная разработка — наиболее популярные варианты использования Docker Compose.
В этой статье объясняется, как установить последнюю версию Docker Compose на Debian 10, Buster. Мы также рассмотрим основные концепции и команды Docker Compose.
Прежде чем продолжить, убедитесь, что вы выполнили следующие условия:
Установочный пакет Docker Compose доступен в официальных репозиториях Debian 10, но он не всегда может быть последней версией. Рекомендуемый подход — установить Docker Compose из хранилища Docker’s GitHub.
На момент написания этой статьи последней стабильной версией Docker Compose была версия 1.23.1. Перед загрузкой двоичного файла Compose перейдите на страницу выпуска Compose репозитория на GitHub и проверьте, доступна ли новая версия для загрузки.
Чтобы установить последнюю версию Docker Compose в Debian 10, выполните следующие действия:
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
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Вывод будет выглядеть примерно так:
docker-compose version 1.23.1, build b02f1306
В этом разделе мы покажем, как настроить локальную среду разработки WordPress с помощью Docker Compose.
Создайте каталог для проекта и перейдите в него:
mkdir wordpress_app && cd wordpress_app
Откройте ваш текстовый редактор и создайте файл с именем docker-compose.yml:
nano 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:
Обслуживание 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 запущено и работает, и вы можете начать работать над ним.
Для остановки Compose нажмите 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, вы можете просто удалить двоичный файл, набрав:
sudo rm /usr/local/bin/docker-compose
Чтобы установить Docker Compose на Debian 10, просто загрузите двоичный файл в каталог по системному пути и сделайте его исполняемым.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.
🙂