CodeShot
Docker Compose1 دقیقه مطالعه

Docker Compose چیست؟

ابزاری برای تعریف و اجرای اپلیکیشن‌های چند-Container (مثل API + دیتابیس + کش) با یک فایل YAML واحد و یک دستور اجرا.

چرا مهم است؟

اکثر پروژه‌های واقعی به بیش از یک Container نیاز دارند (مثلاً API، دیتابیس و Redis)؛ بدون Compose باید هر Container را جدا با دستورات طولانی docker run بالا آورد و به هم متصل کرد.

تعریف

Docker Compose سرویس‌های یک اپلیکیشن، شبکه بین آن‌ها و Volume های موردنیازشان را در یک فایل docker-compose.yml توصیف می‌کند و همه را با یک دستور بالا می‌آورد.

نمونه docker-compose.yml

services:
  api:
    build: .
    ports:
      - "8080:80"
    depends_on:
      - db
    environment:
      - ConnectionStrings__Default=Server=db;Database=AppDb;User=sa;Password=Pass123!

  db:
    image: mcr.microsoft.com/mssql/server:2022-latest
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=Pass123!
    volumes:
      - db-data:/var/opt/mssql

volumes:
  db-data:

دستورات رایج

docker compose up -d       # اجرای همه سرویس‌ها در پس‌زمینه
docker compose logs -f api # مشاهده لاگ زنده یک سرویس
docker compose down        # توقف و حذف Container ها (بدون Volume)

اشتباه رایج

❌ فراموش کردن depends_on یا فرض کردن ترتیب اجرا به معنی «آماده بودن» سرویس است — depends_on فقط ترتیب استارت را تضمین می‌کند، نه اینکه دیتابیس واقعاً برای اتصال آماده باشد؛ برای این کار باید Healthcheck یا Retry در کد اضافه کرد.

منبع و مطالعه بیشتر

خلاصه

Docker Compose چند Container مرتبط (مثل API و دیتابیس) را با یک فایل YAML و یک دستور بالا می‌آورد. depends_on فقط ترتیب استارت را تضمین می‌کند، نه آماده‌بودن سرویس؛ برای اتصال مطمئن از Retry/Healthcheck استفاده کنید. مرجع کامل: مستندات رسمی Docker.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←