Два оновлення з моменту оригінальної статті: (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.