Docker Compose ابزاری است که به کاربران امکان تعریف و اجرای برنامههای Docker چندکانتینری را میدهد. با Docker Compose میتوانید از یک فایل YAML برای پیکربندی سرویسها، شبکهها و حجمهای برنامه استفاده کنید و چندین کانتینر متصل بههم را بهعنوان یک واحد مدیریت کنید.
Docker Compose در سال ۲۰۱۴ معرفی شد تا مدیریت برنامههای Docker چندکانتینری را سادهتر کند. از آن زمان بهعنوان یکی از ابزارهای محبوب در اکوسیستم Docker شناخته شده و راهی ساده و کارآمد برای ارکستراسیون کانتینرها فراهم میآورد.
چگونه Docker Compose کار میکند
Docker Compose با خواندن یک فایل YAML که سرویسها، شبکهها و حجمهای برنامه را توصیف میکند، عمل میکند. هر سرویس بهعنوان یک کانتینر تعریف میشود و فایل YAML مشخص میکند که این کانتینرها چگونه پیکربندی شوند و با یکدیگر چگونه ارتباط برقرار کنند.
هنگامی که Docker Compose اجرا میشود، یک شبکه برای برنامه ایجاد میکند و کانتینرهای تعریفشده در فایل YAML را راهاندازی مینماید. کانتینرها به ترتیب تعریفشده در فایل YAML شروع میشوند و هر یک با مجموعهای از متغیرهای محیطی، فایلهای پیکربندی و منابع دیگر خود اجرا میگردند.
پس از راهاندازی کانتینرها، Docker Compose مجموعهای از دستورات برای مدیریت برنامه فراهم میکند؛ از جمله شروع و توقف کانتینرها، مقیاسبندی سرویسها و مشاهده لاگها.
استفاده از Docker Compose
برای استفاده از Docker Compose ابتدا باید یک فایل YAML که برنامه شما را توصیف میکند، ایجاد کنید. در ادامه نمونهای ساده از یک فایل Docker Compose YAML آورده شده است:
version: '3'
services:
web:
image: nginx
ports:
- "8000:80"
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
در این مثال دو سرویس داریم: «web» و «db». سرویس «web» از تصویر nginx استفاده میکند و پورت ۸۰۰۰ را به میزبان اختصاص میدهد. سرویس «db» از تصویر postgres بهره میبرد و متغیر محیطی POSTGRES_PASSWORD را تنظیم میکند.
برای راهاندازی برنامه میتوانید دستور زیر را اجرا کنید:
این دستور فایل YAML را میخواند و کانتینرهای تعریفشده در آن را راهاندازی میکند. سپس میتوانید سرویس وب را با باز کردن مرورگر و رفتن به آدرس http://localhost:8000 مشاهده کنید.
نتیجهگیری
Docker Compose ابزاری قدرتمند برای مدیریت برنامههای Docker چندکانتینری است. با Docker Compose میتوانید برنامه خود را بهعنوان مجموعهای از کانتینرهای متصل بههم تعریف کنید و مدیریت و مقیاسبندی آن را آسانتر کنید. با استفاده از یک فایل YAML ساده برای پیکربندی برنامه، Docker Compose به شما امکان میدهد برنامههای پیچیده مبتنی بر کانتینر را بهسرعت ایجاد، اجرا و مدیریت کنید.