Docker Compose – это инструмент, который можно использовать для определения и запуска нескольких контейнеров в качестве единого сервиса.
С помощью Docker Compose вы можете связать несколько контейнеров и развернуть приложение с помощью одной команды.
Он в основном используется в среде разработки, тестирования и подготовки.
Docker Compose использует YAML-файл для определения сложного стека в файле и запуска его одной командой.
В этом уроке мы покажем вам, как установить и использовать Docker Compose в CentOS 8.
Требования
- Сервер под управлением CentOS 8.
- Пароль root
Установка Docker
Ранее мы уже писали об этом:
🐳 Как установить Docker на CentOS 8
Установка Docker Compose
По умолчанию Docker Compose недоступен в репозитории CentOS 8 по умолчанию.
Так что вам нужно будет скачать его из репозитория Git.
Сначала установите команду curl с помощью следующей команды:
dnf install curl -y
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
Вы должны увидеть следующий вывод:
docker-compose version 1.25.0, build 0a186604
docker-compose --help
Развертывание Drupal с Docker Compose
В этом разделе мы покажем вам, как установить Drupal с помощью Docker Compose.
Сначала создайте каталог для drupal с помощью следующей команды:
mkdir drupal
nano drupal/docker-compose.yaml
Добавьте следующее содержание:
version: '3.3' services: drupal: image: drupal:latest ports: - 80:80 volumes: - drupal_modules:/var/www/html/modules - drupal_profiles:/var/www/html/profiles - drupal_themes:/var/www/html/themes - drupal_sites:/var/www/html/sites restart: always postgres: image: postgres:10 environment: POSTGRES_PASSWORD: your_postgres_password volumes: - db_data:/var/lib/postgresql/data restart: always volumes: drupal_modules: drupal_profiles: drupal_themes: drupal_sites: db_data:
Сохраните и закройте файл, когда закончите.
Затем измените каталог на drupal и запустите контейнер Docker с помощью следующей команды:
cd drupal
docker-compose up -d
Приведенная выше команда загрузит и запустит контейнеры drupal и postgresql.
Вы можете проверить работающие контейнеры с помощью следующей команды:
docker-compose ps
Вы должны увидеть следующий вывод:
Name Command State Ports ------------------------------------------------------------------------------- drupal_drupal_1 docker-php-entrypoint apac ... Up 0.0.0.0:80->80/tcp drupal_postgres_1 docker-entrypoint.sh postgres Up 5432/tcp
Работа с Docker Compose
В этом разделе мы покажем вам, как использовать команду docker-compose.
Чтобы остановить сервисы Docker Compose, выполните следующую команду в каталоге drupal:
docker-compose stop
Вы должны увидеть следующий вывод:
Stopping drupal_drupal_1 ... done Stopping drupal_postgres_1 ... done
docker-compose start
docker-compose logs
Чтобы просмотреть журналы определенного контейнера, выполните следующую команду:
docker-compose logs drupal
docker-compose config
docker-compose pause
Pausing drupal_postgres_1 ... done Pausing drupal_drupal_1 ... done
docker-compose unpause
Вывод
Unpausing drupal_drupal_1 ... done Unpausing drupal_postgres_1 ... done
Чтобы удалить все контейнеры, выполните следующую команду:
docker-compose down
Вы должны увидеть следующий вывод:
Stopping drupal_drupal_1 ... done Stopping drupal_postgres_1 ... done Removing drupal_drupal_1 ... done Removing drupal_postgres_1 ... done Removing network drupal_default
docker-compose down --volumes
Вы должны увидеть следующий вывод:
Removing network drupal_default WARNING: Network drupal_default not found. Removing volume drupal_drupal_modules Removing volume drupal_drupal_profiles Removing volume drupal_drupal_themes Removing volume drupal_drupal_sites Removing volume drupal_db_data
Заключение
В этом руководстве мы узнали, как установить и использовать Docker Compose в CentOS 8.
Надеюсь, теперь у вас достаточно знаний о том, как использовать команду Docker Compose для управления контейнерами Docker.
1 comment
Проблемой первого способа является то, что обычно в репозиториях операционной системы docker-compose старой версии. Это является проблемой, если необходимо использовать свежую версию демона docker или используются специфические для определенной версии формата файла docker-compose.yaml возможности (матрицу поддерживаемых фич по версиям формата и версиям утилиты docker-compose можно найти на официальном сайте docker).