⚠
Два обновления с момента оригинальной статьи: (1) CentOS 8 достиг конца жизненного цикла 31 декабря 2021 года — используйте AlmaLinux 9, Rocky Linux 9 или CentOS Stream. (2) Docker Compose v1 (команда docker-compose) устарела. Compose v2 теперь является плагином Docker и запускается как docker compose (с пробелом). Ниже приведены актуальные шаги.
Docker Compose позволяет описывать и запускать многоконтейнерные приложения из одного YAML-файла — одной командой поднимается весь стек (приложение, база данных, кэш) с нужными сетями и томами. Compose теперь встроен в Docker как плагин (v2), поэтому устанавливается вместе с Docker. Ниже — актуальная настройка для AlmaLinux 9, Rocky Linux 9 и CentOS Stream.
Шаг 1: Добавьте репозиторий Docker
sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
Шаг 2: Установите Docker и плагин Compose
Пакет docker-compose-plugin предоставляет Compose v2:
sudo dnf install -y docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin
Шаг 3: Запустите Docker и проверьте
sudo systemctl enable --now docker docker --version docker compose version
Обратите внимание: команда для v2 — docker compose (с пробелом), а не старая docker-compose. Чтобы запускать Docker без sudo, добавьте своего пользователя в группу docker: sudo usermod -aG docker $USER, затем выйдите и войдите снова.
Шаг 4: Пример docker-compose.yml
Создайте файл с именем docker-compose.yml — вот простой стек WordPress + MySQL:
services: db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: change_me MYSQL_DATABASE: wordpress volumes: - db_data:/var/lib/mysql wordpress: image: wordpress:latest depends_on: - db ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_NAME: wordpress volumes: db_data:
Шаг 5: Основные команды Compose
docker compose up -d # запустить стек в фоне docker compose ps # список запущенных сервисов docker compose logs -f # следить за логами docker compose down # остановить и удалить контейнеры docker compose pull # обновить образы
В современном файле Compose больше не нужна строка version:, которую показывают старые туториалы — Compose v2 её игнорирует. Docker Compose хорошо работает на любом VPS или выделенном сервере; для продакшн-стеков заметную разницу дают NVMe-хранилище и гарантированная RAM.