تمامی افرادی که با دنیای داکر آشنا هستند میدانند که مدیریت چند کانتینر به طور همزمان کار چالش برانگیزی است. در اینجاست که به کمک docker compose میتوان چندین سرور مرتبط را تنها با یک فایل پیکربندی و یک دستور ساده مدیریت کرد. با توجه به کارآمد بودن این موضوع تصمیم گرفتیم تا در این مطلب به آموزش docker compose بپردازیم و در رابطه با مزایای آن صحبت کنیم.
docker compose چیست؟
پیش از آموزش docker compose خوب است نسبت به مفهوم و تعریف آن اطلاعات کاملتری داشته باشید. این ابزار کاربردی به توسعهدهندگان کمک میکند تا بتوانند چند سرویس مرتبط را به طور همزمان و ساده مدیریت کنند. هنگامی که پروژه شامل چند کانتینر باشد، بهعنوان مثال پایگاه داده، بکاند و فرانتاند باشند، برای راهاندازی دستی هر کدام با دستور جداگانه باید زمان بسیار زیادی صرف کرد و پیچیدگی کار هم بالا میرود. اما docker compose مشکل را برطرف میکند و تنها با استفاده از یک فایل پیکربندی YAML میتواند این کار را برای شما انجام دهد.
در این فایل تمامی سرویسها، تنظیمات شبکه و حجمها تعریفشده و تنها با وارد کردن یک دستور ساده تمامی کانتینرها بالا میآید.

مزایای docker compose چیست؟
مزایای docker compose که در ادامه بررسی میکنیم سبب شدند تا امروزه کاربرد و محبوبیت بسیار زیادی داشته باشد.
قابلیت بازتولید محیط
فایل docker-compose.yml همچون یک سند دقیق همهچیز را مستندسازی کرده و میتوانید همان محیط را روی هر سیستمی که میخواهید بازسازی کنید یا توسعه دهید.
مدیریت ساده چند سرویس
به جای اجرای چندین دستور مختلف برای ران کردن داکر برای هر سرویس، میتوانید تنها با یک فایل YAML تمامی سرویسها را بهصورت جامع و در یک دستور اجرا کنید.
مدیریت وابستگی بین سرویسها
اگر یک سرویس به سرویسهای دیگر نظیر دیتابیس وابسته باشد، Compose ترتیب اجرا را مشخص کرده تا خطا در این پروسه رخ ندهد.
مقیاس پذیری آسان
به کمک یک دستور میتوان تعداد کانتینرهای سرویس را افزایش داد که این ویژگی برای برنامههای میکروسرویس بسیار کارآمد است.
خوانایی و مستندسازی بهتر
تمامی تنظیمات در یک فایل واحد ذخیره میشوند که هم خوانایی را سادهتر میکنند و هم به راحتی میتوان آن را بین دیگر اعضای تیم به اشتراک گذاشت.
مدیریت راحت شبکهها
docker compose به طور خودکار میتواند شبکهها و ولومها را بسازد و عملاً نیازی به دخالت دستی نیست. این کار ضمن کاهش خطای انسانی باعث صرفهجویی در زمان هم میشود.
تمامی این مزایا که وبسایت docs.docker.com هم به آن اشاره دارد بسیار کاربردی هستند. اما دقت کنید برای اجرای روانتر پروژههای داخلی به یک زیرساخت پایدار و پرسرعت نیاز دارید. ازجمله بهترین گزینهها استفاده از هاست لینوکس است که باعث هماهنگی عالی با محیطی مبتنی بر داکر میشود. پس برای اجرای بهتر حتماً به فکر خرید هاست لینوکس ایران سرور با سرعت و پایداری بالا باشید.
مراحل نصب و راهاندازی docker compose
در این قسمت به آموزش docker compose میپردازیم که شامل نصب و همچنین راهاندازی آن میشود. با سپری کردن مراحل به ترتیب گفتهشده، به راحتی میتوانید از مزایای این ابزار بهره ببرید.
نصب Docker Engine
برای به اجرا درآوردن docker compose ابتدا باید Docker Engine را داشته باشید و یا روی سیستم نصب کنید. با توجه به این که از ویندوز و مک اقدام میکنید یا لینوکس، این مسیر متفاوت است.
اگر از طریق ویندوز و مک میخواهید اقدام کنید نیازی به نصب جداگانه نیست، چرا که نسخه compose همراه با خود Docker Desktop نصب میشود. اما اگر از طریق لینوکس میخواهید اقدام کنید ابتدا باید Docker Engine را نصب کرده و سپس برای نصب Compose طبق مراحل زیر پیش روید.

نصب Docker Compose در لینوکس
اگر سیستم عامل شما لینوکس است مسیر زیر را پیش بگیرید:
- دانلود باینری با:
sudo curl -L
“https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
- اعمال دستور اجرایی:
sudo chmod +x /usr/local/bin/docker-compose
- تست نصب:
برای اطمینان از نصب صحیح با وارد کردن دستور docker-compose –version و در ادامه دیدن خروجی شبیه به docker-compose version 1.26.2, build 1110ad01 مطمئن شوید که نصب بهدرستی اجرا شده است.

نحوه استفاده از Docker Compose
در این قسمت از آموزش Docker Compose به استفاده از آن میپردازیم که این کار در سه مرحله اصلی انجام میشود:
تعریف محیط با Dockerfile
ابتدا برای هر سرویسی که میخواهید بر روی آن دستور اجرا کنید، یک Dockerfile تعریف کنید. این فایل شامل دستوراتی است که مشخص میکند چگونه ایمیج Docker ساخته میشود.
تعریف سرویسها با docker-compose.yml
در این مرحله باید یک فایل با نام docker-compose.yml بسازید و در آن سرویسهای مختلف برنامه خود را تعریف کنید.
اجرای پروژه
و درنهایت برای بالا آوردن تمام سرویسها به طور همزمان باید دستور زیر را وارد کنید:
- docker-compose up
اگرمیخواهید اجرا در پسزمینه باشد، دستور docker-compose up -d باعث آن میشود. همچنین برای توقف سرویسها تنها کافیست دستور docker-compose down را وارد کنید.
اضافه کردن Compose به پروژههای موجود
دقت کنید اگر از قبل Dockerfile دارید نیازی نیست که دوباره آن را بسازید و به راحتی میتوانید فایل Compose را add کنید. اگر در محیط هایی نظیر VS Code هستید، از Command Palette استفاده کرده و در ادامه با زدن دستور زیر، این اضافه کردن را انجام دهید:
- Docker: Add Docker Files to Workspace
سپس سیستم از شما میپرسد که آیا قصد دارید که فایلهای Compose را اضافه کنید یا نه؟ در صورت تأیید فایل با نام docker-compose.yml به پروژه شما اضافه میشود.
نتیجهگیری
Docker Compose یکی از ابزارهای بسیار قدرتمند و ساده به منظور مدیریت محیطهای چند کانتینری است. فرقی نمیکند که در محیط توسعهیافته فعالیت میکنید یا در حال تست و تولید هستید، به کمک این سرویس میتوانید پروژههای خود را به شکلی مقیاس پذیر و ساختاریافته مدیریت کنید. ما در این متن تمامی مواردی که برای آموزش Docker Compose به آن نیاز داشتید را برایتان آوردهایم تا تنها با مطالعه آن به راحتی بتوانید مدیریت محیطهای خود را انجام دهید.