با Docker Compose چند کانتینر مرتبط (مثل وردپرس و دیتابیس) را با یک فایل تنظیمات و یک دستور مدیریت کنید.

آموزش Docker Compose برای مدیریت چند کانتینر

Docker Compose ابزاری است که مدیریت چند کانتینر داکر مرتبط با هم (مثلاً یک اپلیکیشن وب + دیتابیس + کش) را به یک فایل تنظیمات واحد و چند دستور ساده تبدیل می‌کند — به‌جای اینکه هر کانتینر را جداگانه با دستورات طولانی docker run اجرا کنید.

پیش‌نیاز

ابتدا باید Docker را نصب کرده باشید. نسخه‌های جدید داکر معمولاً Compose را به‌صورت پلاگین (دستور docker compose) همراه خود دارند.

ساخت اولین فایل docker-compose.yml

فرض کنید می‌خواهید یک اپلیکیشن وردپرس همراه با دیتابیس MySQL راه بیندازید:

version: '3.8'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: RamzeQavi123
      WORDPRESS_DB_NAME: wordpress
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: RamzeQavi123
      MYSQL_ROOT_PASSWORD: RamzeRootQavi123
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

اجرای همه سرویس‌ها با یک دستور

docker compose up -d

این دستور هر دو کانتینر (وردپرس و دیتابیس) را می‌سازد، شبکه داخلی بین آن‌ها برقرار می‌کند و در پس‌زمینه اجرا می‌کند.

دستورات پرکاربرد

  • docker compose ps — نمایش وضعیت سرویس‌ها
  • docker compose logs -f — مشاهده لاگ زنده همه سرویس‌ها
  • docker compose down — توقف و حذف کانتینرها (بدون حذف داده‌های Volume)
  • docker compose restart — ری‌استارت همه سرویس‌ها

چرا Compose بهتر از اجرای دستی کانتینرهاست؟

تمام پیکربندی پروژه در یک فایل متنی مستند و قابل نگهداری در Git است؛ هر عضو تیم با یک دستور docker compose up دقیقاً همان محیط را روی سیستم خودش بالا می‌آورد — بدون نیاز به مستندسازی جداگانه یا نصب دستی هر سرویس.