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

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

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

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

В этом руководстве объясняется, как установить последнюю версию Docker Compose в Debian 10, Buster. Мы также рассмотрим основные концепции и команды Docker Compose.

Подготовка

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

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

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

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

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

  1. Загрузите двоичный файл 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
  2. Используйте chmod чтобы сделать исполняемый двоичный файл Compose:

     sudo chmod +x /usr/local/bin/docker-compose
  3. Чтобы проверить установку, используйте следующую команду, которая выводит версию 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-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, просто загрузите двоичный файл в каталог на системном пути и сделайте его исполняемым.

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

Оставьте комментарий