Docker Compose و مدیریت چند کانتینر

Docker Compose و مدیریت چند کانتینر

Docker Compose و مدیریت چند کانتینر
در پروژه‌های واقعی، معمولاً بیش از یک کانتینر نیاز داریم: اپلیکیشن، پایگاه داده، کش و سرویس‌های دیگر.

Docker Compose ابزاری است که امکان مدیریت همزمان چند کانتینر، شبکه و Volumeها را فراهم می‌کند. این مقاله به شما یاد می‌دهد چطور محیط‌های پیچیده را ساده و قابل کنترل بسازید.

۱. Docker Compose چیست؟

  • Docker Compose ابزار رسمی Docker برای تعریف و اجرای چند کانتینر به صورت همزمان است.

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

  • هدف اصلی Compose، سهولت در توسعه و تست محیط‌های پیچیده است.

📌 مثال واقعی: تیم‌های Airbnb و Netflix از Compose برای راه‌اندازی سریع محیط تست میکروسرویس‌ها استفاده می‌کنند تا همه سرویس‌ها به صورت همزمان اجرا شوند.

۲. فایل docker-compose.yml

  • این فایل شامل بخش‌های زیر است:

    • services: تعریف سرویس‌ها و کانتینرها

    • networks: تعریف شبکه‌های اختصاصی برای سرویس‌ها

    • volumes: تعریف ذخیره‌سازی دائمی داده‌ها

📌 مثال فایل ساده

 

 

 

 

 

 

 

 

 

 

 

 

 

 

۳. دستورات پایه Docker Compose

  • راه‌اندازی همه سرویس‌ها:

 
docker-compose up -d 
  • توقف همه سرویس‌ها:

 
docker-compose down 
  • مشاهده سرویس‌ها و وضعیت کانتینرها:

 
docker-compose ps 
  • مشاهده لاگ‌ها:

 
docker-compose logs -f 

📌 مثال واقعی: تیم‌های Spotify با Compose، محیط توسعه شامل اپلیکیشن، دیتابیس و سرویس کش را در یک دستور اجرا می‌کنند و از سازگاری کامل محیط توسعه با تولید اطمینان حاصل می‌کنند.

۴. مزایای استفاده از Docker Compose

  1. راه‌اندازی سریع چند کانتینر

    • یک دستور کافی است تا محیط توسعه یا تست کامل اجرا شود.

  2. یکپارچگی شبکه و Volumeها

    • کانتینرها به راحتی به شبکه‌ها و Volumeهای مشترک متصل می‌شوند.

  3. پیکربندی قابل اشتراک

    • فایل docker-compose.yml قابل اشتراک با تیم است و محیط همه توسعه‌دهندگان یکسان خواهد بود.

  4. سهولت در توسعه و CI/CD

    • ترکیب با Jenkins یا GitLab CI برای تست اتوماتیک و استقرار سریع

📌 مثال واقعی: تیم‌های Etsy با Compose، سرویس‌های مختلف میکروسرویسی خود را مدیریت می‌کنند و زمان آماده‌سازی محیط توسعه از ساعت‌ها به دقیقه‌ها کاهش یافته است.

۵. نکات حرفه‌ای

  • استفاده از متغیرهای محیطی (.env) برای پیکربندی پویا

  • جداسازی شبکه‌ها برای محیط‌های مختلف (توسعه، تست، تولید)

  • استفاده از depends_on برای ترتیب راه‌اندازی سرویس‌ها

  • بهینه‌سازی حجم داده‌ها و پاکسازی Volumeهای غیرضروری

۶. جمع‌بندی

  • Docker Compose ابزار حیاتی برای مدیریت چند کانتینر در پروژه‌های واقعی است.

  • با Compose، محیط توسعه و تست سریع، یکسان و قابل اعتماد می‌شود.

  • ترکیب Compose با Volume و شبکه‌بندی، کنترل کامل بر داده‌ها و ارتباط بین کانتینرها فراهم می‌کند.

  • این ابزار به توسعه‌دهندگان و تیم‌های DevOps کمک می‌کند تا پیچیدگی‌های محیط چند سرویس را ساده و قابل مدیریت کنند.

🔑 کلیدواژه‌ها: Docker Compose، مدیریت چند کانتینر، آموزش Docker Compose، فایل docker-compose.yml، Docker Compose برای DevOps