Docker Compose چیست؟ Docker Compose یا داکر کامپوز ابزاری برای تعریف و مدیریت سرویس های یک برنامه کانتینری با یک فایل YAML است. در این فایل، ایمیج ها، شبکه ها، فضای ذخیره سازی و تنظیمات هر سرویس مشخص می شوند تا بتوان سرویس های پروژه را با یک دستور ایجاد و اجرا کرد.
برای مثال، یک برنامه وب می تواند به سرویس برنامه، پایگاه داده و Redis نیاز داشته باشد. Compose تنظیمات این اجزا را در یک محل نگه می دارد و مدیریت محیط توسعه، تست یا استقرار روی یک سرور را ساده تر می کند.
در این مقاله با نحوه کار Compose، اجزای فایل پیکربندی، دستورات اصلی و محدودیت های آن آشنا می شوید. برای پیاده سازی زیرساخت کانتینری نیز می توانید صفحه خدمات Docker سربروس را ببینید.
خلاصه سریع
Compose سرویس ها، شبکه ها و فضای ذخیره سازی پروژه را در یک فایل YAML تعریف می کند. نام پیشنهادی فایل compose.yaml است؛ compose.yml و نام های قدیمی docker-compose.yaml و docker-compose.yml نیز پشتیبانی می شوند.
کاربردهای رایج آن شامل توسعه، تست و استقرار روی یک سرور است. Compose به تنهایی جایگزین مدیریت خوشه، مقیاس پذیری خودکار یا دسترس پذیری بالا در چند سرور نیست.
Docker Compose چیست؟
Docker Compose ابزاری رسمی از Docker است که برای مدیریت و اجرای همزمان چند کانتینر طراحی شده است. به جای اینکه هر کانتینر را به صورت جداگانه ایجاد و اجرا کنید، می توانید مشخصات تمام سرویس های پروژه را در یک فایل با فرمت YAML ذخیره کرده و سپس با یک دستور همه آن ها را اجرا کنید.
به بیان ساده، Docker Compose نقش مدیر پروژه کانتینرهای Docker را بر عهده دارد. این ابزار مشخص می کند که چه سرویس هایی باید اجرا شوند، هر سرویس از چه Imageای استفاده کند، چه Portهایی باز شوند، چه Volumeهایی متصل شوند و ارتباط میان کانتینرها چگونه برقرار شود.
برای مثال، یک پروژه وردپرسی می تواند از یک سرویس WordPress و یک سرویس پایگاه داده MySQL تشکیل شود. بسته به ایمیج و معماری پروژه، وب سرور می تواند داخل سرویس WordPress باشد یا به صورت یک سرویس جداگانه تعریف شود.
اگر بخواهید همه این سرویس ها را با Docker به صورت دستی اجرا کنید، باید چندین دستور مختلف وارد کنید و پارامترهای مربوط به شبکه، Volume و Port را برای هر کدام به صورت جداگانه تنظیم نمایید. اما در Docker Compose تنها کافی است تمام این اطلاعات را در یک فایل ذخیره کنید و سپس دستور اجرا را وارد نمایید.
به همین دلیل Docker Compose به یکی از محبوب ترین ابزارهای توسعه نرم افزار تبدیل شده است؛ زیرا علاوه بر کاهش پیچیدگی، احتمال خطاهای انسانی را نیز تا حد زیادی کاهش می دهد.
چرا Docker Compose ایجاد شد؟
قبل از معرفی Docker Compose، توسعه دهندگان برای اجرای هر کانتینر مجبور بودند دستورات متعددی مانند docker run را پشت سر هم اجرا کنند. این روش در پروژه های کوچک قابل قبول بود، اما با افزایش تعداد سرویس ها، مدیریت پروژه بسیار دشوار می شد.
برای مثال تصور کنید پروژه شما شامل موارد زیر باشد:
Nginx
PHP
MySQL
Redis
Elasticsearch
اکنون باید برای هر سرویس، تنظیمات شبکه، Volume، متغیرهای محیطی و وابستگی ها را جداگانه تعریف کنید. در چنین شرایطی احتمال فراموش کردن یک پارامتر یا اشتباه در اجرای دستورات بسیار زیاد است.
Docker Compose با نگهداری تنظیمات سرویس ها در یک فایل پیکربندی مشترک، تکرار راه اندازی پروژه را ساده تر می کند. برای داشتن محیط های مشابه، علاوه بر فایل Compose باید نسخه ایمیج ها، متغیرهای محیطی و داده های مورد نیاز نیز مشخص و هماهنگ باشند.
مهم ترین ویژگی های Docker Compose
استفاده از Docker Compose مزایای متعددی دارد که مهم ترین آن ها عبارت اند از:
اجرای چندین کانتینر تنها با یک دستور
مدیریت آسان سرویس های وابسته به یکدیگر
ایجاد شبکه اختصاصی بین سرویس ها به صورت خودکار
تعریف Volumeها و داده های پایدار
اشتراک یک فایل پیکربندی بین تمام اعضای تیم
راه اندازی سریع محیط توسعه
کاهش خطاهای ناشی از اجرای دستی دستورات
همین ویژگی ها باعث شده است که Docker Compose به یکی از ابزارهای اصلی بسیاری از تیم های توسعه نرم افزار و DevOps تبدیل شود.
نکته: اگر هنوز با Docker و تفاوت آن با Kubernetes آشنا نیستید، پیشنهاد می کنیم ابتدا مقاله تفاوت Docker و Kubernetes چیست؟ را مطالعه کنید تا درک بهتری از جایگاه Docker Compose در اکوسیستم Docker به دست آورید.
Docker Compose چگونه کار می کند؟
اساس کار Docker Compose یک فایل پیکربندی YAML است. نام پیشنهادی این فایل compose.yaml است؛ compose.yml و نام های docker-compose.yaml و docker-compose.yml نیز پشتیبانی می شوند. در این فایل، سرویس ها، ایمیج ها، شبکه ها، Volumeها، متغیرهای محیطی و وابستگی های پروژه تعریف می شوند.
پس از آماده شدن این فایل، تنها کافی است دستور اجرای Docker Compose را وارد کنید تا تمام سرویس های تعریف شده به صورت خودکار ایجاد و اجرا شوند.
به طور کلی روند کار Docker Compose شامل مراحل زیر است:
خواندن فایل compose.yml
بررسی سرویس های تعریف شده
دانلود Imageها در صورت نیاز
ایجاد Network اختصاصی پروژه
ایجاد Volumeها
ایجاد و اجرای کانتینرها بر اساس وابستگی های تعریف شده
اتصال سرویس ها به یکدیگر
به همین دلیل راه اندازی پروژه ای که قبلا ممکن بود به ده ها دستور مختلف نیاز داشته باشد، اکنون تنها با یک دستور انجام می شود.
شروع یک کانتینر به معنی آماده بودن برنامه داخل آن نیست. برای مثال، پایگاه داده ممکن است اجرا شده باشد اما هنوز آماده دریافت اتصال نباشد. برای کنترل این وضعیت، باید بررسی سلامت سرویس و شرط آماده بودن آن تعریف شود؛ تعیین وابستگی با depends_on به تنهایی آماده بودن پایگاه داده را تضمین نمی کند.
سرویس (Service) چیست؟
مهم ترین بخش فایل Compose، تعریف Serviceها است.
هر Service نماینده یک کانتینر یا مجموعه ای از تنظیمات مربوط به آن کانتینر است. برای مثال در یک پروژه ممکن است سرویس های زیر وجود داشته باشند:
nginx
app
mysql
redis
هر سرویس می تواند Image مخصوص خود، تنظیمات شبکه، متغیرهای محیطی، Volumeها و Portهای اختصاصی داشته باشد.
ارتباط بین کانتینرها
یکی از قابلیت های ارزشمند Docker Compose این است که به صورت خودکار یک شبکه اختصاصی برای پروژه ایجاد می کند. بنابراین سرویس ها بدون نیاز به تنظیمات پیچیده می توانند با یکدیگر ارتباط برقرار کنند.
برای مثال، سرویس وب می تواند تنها با استفاده از نام سرویس mysql به پایگاه داده متصل شود و نیازی به دانستن IP کانتینر نخواهد داشت. این قابلیت علاوه بر ساده تر شدن توسعه، باعث می شود پروژه در محیط های مختلف نیز بدون تغییر اجرا شود.
ارتباط داخلی بین کانتینرها با دسترسی کاربران از بیرون پروژه متفاوت است. برای دریافت درخواست های کاربران و هدایت آنها به سرویس وب مناسب، می توان از پروکسی معکوس با Nginx در جلوی برنامه های کانتینری استفاده کرد.
چرا Docker Compose برای تیم های توسعه اهمیت دارد؟
Docker Compose با نگهداری تنظیمات سرویس ها در یک فایل مشترک، تکرار راه اندازی محیط توسعه را ساده تر می کند. با این حال، یکسان بودن فایل به تنهایی محیط های کاملا یکسان را تضمین نمی کند؛ نسخه ایمیج ها، متغیرهای محیطی، معماری سیستم و داده های ذخیره شده نیز باید هماهنگ باشند.

چه زمانی به Docker Compose نیاز داریم؟
با بزرگ تر شدن پروژه ها، تعداد کانتینرهای مورد نیاز نیز افزایش پیدا می کند. برای مثال، یک پروژه تحت وب ممکن است علاوه بر برنامه اصلی، به پایگاه داده، وب سرور، Redis یا سایر سرویس ها نیاز داشته باشد. مدیریت این کانتینرها به صورت جداگانه علاوه بر زمان بر بودن، احتمال بروز خطا را نیز افزایش می دهد.
Docker Compose این مشکل را با فراهم کردن امکان مدیریت همزمان چند کانتینر برطرف می کند. تمام تنظیمات پروژه در یک فایل ذخیره می شود و هر بار تنها با یک دستور، همه سرویس ها اجرا خواهند شد.
به همین دلیل Docker Compose به یکی از ابزارهای مهم در توسعه نرم افزار، تست و فرآیندهای DevOps تبدیل شده است.
چه زمانی Docker Compose بهترین انتخاب است؟
Docker Compose برای محیطهای توسعه، تست و استقرار چند سرویس وابسته در یک میزبان مناسب است؛ مانند برنامههای WordPress، Laravel، Node.js و Django در کنار پایگاه داده یا Redis. تنظیمات سرویسها در فایل Compose ثبت میشوند و راهاندازی محیط را تکرارپذیرتر میکنند.
مزایای Docker Compose
Docker Compose تنها یک ابزار برای اجرای چند کانتینر نیست، بلکه مزایای متعددی دارد که باعث شده بسیاری از تیم های توسعه از آن استفاده کنند.
| مزیت | توضیح |
|---|---|
| اجرای همزمان چند کانتینر | تمام سرویس ها با یک دستور اجرا می شوند. |
| مدیریت آسان پروژه | همه تنظیمات در یک فایل قرار می گیرند. |
| ایجاد خودکار Network | ارتباط بین سرویس ها بدون تنظیمات پیچیده برقرار می شود. |
| کاهش خطا | نیاز به اجرای چندین دستور مختلف از بین می رود. |
| همکاری تیمی بهتر | تمام اعضای تیم از یک فایل تنظیمات مشترک استفاده می کنند. |
کاهش زمان راه اندازی پروژه
با داشتن فایل Compose و تنظیمات مورد نیاز، اعضای تیم می توانند سرویس های پروژه را بدون وارد کردن جداگانه تنظیمات هر کانتینر راه اندازی کنند. این کار زمان تنظیم دستی محیط را کاهش می دهد و تکرار راه اندازی را ساده تر می کند.
برای کاهش اختلاف محیط ها، نسخه ایمیج ها و متغیرهای محیطی نیز باید مشخص باشند. Compose به تنهایی تفاوت منابع سیستم یا داده های موجود را برطرف نمی کند.
مدیریت ساده تر سرویس ها
در پروژه های واقعی ممکن است لازم باشد چندین سرویس به صورت همزمان اجرا، متوقف یا بازنشانی شوند. Docker Compose این امکان را فراهم می کند که همه این عملیات تنها با چند دستور ساده انجام شود.
به همین دلیل نگهداری پروژه های چند کانتینری بسیار آسان تر از قبل خواهد بود.
فایل Compose و ساختار compose.yaml
هسته اصلی Docker Compose فایل compose.yml یا docker-compose.yml است. در این فایل مشخص می شود که پروژه از چه سرویس هایی تشکیل شده و هر سرویس چگونه باید اجرا شود.
به جای وارد کردن دستورات متعدد، تنها کافی است تنظیمات مورد نیاز یک بار در این فایل تعریف شوند
مهم ترین بخش های فایل compose.yml
فایل Compose معمولا شامل بخش های زیر است:
services برای تعریف سرویس ها
image برای تعیین Image مورد استفاده
ports برای نگاشت پورت ها
volumes برای نگهداری داده ها
environment برای متغیرهای محیطی
depends_on برای تعیین وابستگی بین سرویس ها
نمونه مفهومی یک پروژه با Compose
مثال زیر یک فایل compose.yaml ساده با دو سرویس مستقل Nginx و Redis است. Nginx روی پورت ۸۰۸۰ میزبان در دسترس قرار میگیرد و Redis فقط در شبکه داخلی پروژه اجرا میشود؛ این مثال صرفاً نحوه تعریف و راهاندازی همزمان سرویسها را نشان میدهد و به معنای اتصال خودکار Nginx به Redis نیست.
services:
web:
image: nginx:alpine
ports:
- "8080:80"
cache:
image: redis:alpine
فایل را با نام compose.yaml ذخیره کنید، سپس از همان پوشه دستورات زیر را بهترتیب نیاز برای راهاندازی، مشاهده وضعیت و توقف سرویسها استفاده کنید:
docker compose up -d
docker compose ps
docker compose down دستور down بهصورت پیشفرض Volumeهای نامگذاریشده را حذف نمیکند.
چرا فایل compose.yml اهمیت دارد؟
نگهداری پیکربندی سرویسها در یک فایل، مرور تغییرات و راهاندازی دوباره محیط را سادهتر میکند. برای تکرارپذیری بهتر، نسخه ایمیجها، متغیرهای محیطی و Volumeها نیز باید مدیریت شوند.

مهم ترین دستورات Docker Compose
پس از آماده شدن فایل compose.yml، تنها با چند دستور ساده می توانید سرویس های پروژه را مدیریت کنید. این دستورات برای اجرای پروژه، مشاهده وضعیت کانتینرها، بررسی لاگ ها و توقف سرویس ها استفاده می شوند.
جدول زیر پرکاربردترین دستورات Docker Compose را نشان می دهد.
| دستور | کاربرد |
|---|---|
docker compose up | اجرای تمام سرویس های پروژه |
docker compose down | توقف و حذف کانتینرها |
docker compose ps | نمایش وضعیت سرویس ها |
docker compose logs | مشاهده لاگ کانتینرها |
docker compose restart | راه اندازی مجدد سرویس ها |
docker compose pull | دریافت آخرین نسخه Imageها |
چرا یادگیری این دستورات اهمیت دارد؟
تسلط بر دستورات Docker Compose باعث می شود مدیریت پروژه های چند کانتینری سریع تر و ساده تر انجام شود. توسعه دهندگان و مدیران زیرساخت معمولا تنها با همین چند دستور، بیشتر نیازهای روزمره خود را برطرف می کنند.
Docker Compose چه کاربردهایی دارد؟
Docker Compose تنها برای اجرای چند کانتینر نیست، بلکه در بسیاری از پروژه های نرم افزاری و زیرساختی مورد استفاده قرار می گیرد. به همین دلیل، یکی از ابزارهای اصلی در فرآیند توسعه و تست نرم افزار محسوب می شود.
توسعه نرم افزار
یکی از رایج ترین کاربردهای Docker Compose، ایجاد محیط توسعه استاندارد برای اعضای تیم است. با استفاده از یک فایل compose.yml، تمام توسعه دهندگان دقیقا از یک محیط مشابه استفاده می کنند و مشکلات ناشی از تفاوت تنظیمات سیستم ها به حداقل می رسد.
تست و آزمایش پروژه
قبل از انتشار نرم افزار، لازم است سرویس های مختلف در کنار یکدیگر آزمایش شوند. Docker Compose این امکان را فراهم می کند که محیط تست تنها با یک دستور راه اندازی شود و پس از پایان آزمایش نیز به راحتی حذف شود.
در پروژه هایی که تست ها داخل Pipelineهای CI/CD اجرا می شوند، این محیط می تواند با ابزارهایی مانند GitLab CI یا GitHub Actions نیز به صورت خودکار راه اندازی و مدیریت شود.
پروژه های چند سرویسی
امروزه بسیاری از نرم افزارها از چندین سرویس مستقل تشکیل شده اند. برای مثال:
WordPress و MySQL
Laravel و Redis
Node.js و MongoDB
Django و PostgreSQL
Docker Compose مدیریت این سرویس ها را بسیار ساده تر می کند و ارتباط بین آن ها را به صورت خودکار برقرار می سازد.
پیاده سازی Microservices
در معماری Microservices هر بخش از نرم افزار در قالب یک سرویس مستقل اجرا می شود. Docker Compose گزینه مناسبی برای توسعه و تست چنین پروژه هایی است و امکان اجرای همزمان چندین سرویس را فراهم می کند.
بسیاری از کاربران، Docker Compose را با ابزارهایی مانند Kubernetes مقایسه می کنند. اگر هنوز با تفاوت این دو فناوری آشنا نیستید، پیشنهاد می کنیم ابتدا مقاله تفاوت Docker و Kubernetes چیست؟ را مطالعه کنید. سپس در ادامه، تفاوت Docker و Docker Compose را بررسی می کنیم.
تفاوت Docker و Docker Compose
گاهی تصور می شود Docker و Docker Compose یک ابزار هستند، در حالی که Docker Compose در واقع ابزاری برای مدیریت و اجرای چندین کانتینر Docker است.
به بیان ساده، Docker مسئول ایجاد و اجرای کانتینرهاست، اما Docker Compose نحوه همکاری و اجرای همزمان چند کانتینر را مدیریت می کند.
مقایسه Docker و Docker Compose
| Docker | Docker Compose |
|---|---|
| اجرای یک کانتینر | مدیریت چند کانتینر |
استفاده از دستور docker run |
استفاده از فایل compose.yml |
| مناسب پروژه های ساده | مناسب پروژه های چند سرویسی |
| تنظیمات هر کانتینر به صورت جداگانه | مدیریت متمرکز تمام سرویس ها |
| اجرای دستی سرویس ها | اجرای همه سرویس ها با یک دستور |
چه زمانی فقط Docker کافی است؟
اگر پروژه شما تنها از یک کانتینر تشکیل شده باشد، استفاده از Docker به تنهایی معمولا کافی است. برای مثال، اجرای یک وب سرور ساده یا یک ابزار مستقل اغلب نیازی به Docker Compose ندارد.
استفاده از Compose در برنامههای چندسرویسی
هر زمان که پروژه از چند سرویس تشکیل شده باشد، Docker Compose مدیریت آن را بسیار آسان تر می کند. در چنین شرایطی، تمام تنظیمات در یک فایل نگهداری می شوند و راه اندازی پروژه تنها با یک دستور انجام خواهد شد.
به همین دلیل، Docker Compose یکی از ابزارهای ضروری برای بسیاری از تیم های توسعه و متخصصان DevOps به شمار می رود.

معیار انتخاب Docker Compose برای پروژه
نمونههای رایج شامل وبسایتهای دارای پایگاه داده، برنامههای چندسرویسی و محیطهای آزمایشی میشوند. معیار انتخاب، تعداد سرویسها، شیوه استقرار، نیاز به مقیاسپذیری و توان عملیاتی تیم است؛ نه صرفاً نام فناوری یا چارچوب برنامه.
محدودیت های Docker Compose
با وجود مزایای فراوان، Docker Compose برای همه پروژه ها بهترین انتخاب نیست. زمانی که تعداد کانتینرها بسیار زیاد شود یا پروژه به قابلیت هایی مانند مقیاس پذیری خودکار، توزیع بار و مدیریت چندین سرور نیاز داشته باشد، استفاده از ابزارهای Orchestration گزینه مناسب تری خواهد بود.
با بزرگ تر شدن پروژه، علاوه بر مدیریت کانتینرها، خودکارسازی مراحل Build، Test و Deployment نیز اهمیت بیشتری پیدا می کند. در مقاله CI/CD چیست؟ می توانید با این فرایند و نقش آن در انتشار خودکار نرم افزار بیشتر آشنا شوید.
در چنین شرایطی معمولا از Kubernetes استفاده می شود. Kubernetes امکاناتی مانند مدیریت خودکار کانتینرها، افزایش یا کاهش تعداد Replicaها، بازیابی خودکار سرویس ها و استقرار در چندین سرور را در اختیار سازمان ها قرار می دهد.
Compose برای استقرار در محیط عملیاتی روی یک سرور نیز قابل استفاده است، به شرط طراحی مناسب امنیت، نگهداری داده ها، پشتیبان گیری و مانیتورینگ. اگر پروژه به مدیریت چند سرور، مقیاس پذیری خودکار یا بازیابی سرویس روی سرور دیگر نیاز داشته باشد، باید راهکار ارکستریشن متناسب با این نیازها انتخاب شود.
آیا Docker Compose در Production قابل استفاده است؟ بله؛ برای استقرار روی یک میزبان میتوان از Compose استفاده کرد، اما باید مدیریت Secretها، نسخه ایمیجها، پشتیبانگیری، نظارت، راهاندازی مجدد، امنیت و شیوه انتشار تغییرات را متناسب با بارکاری طراحی کرد. برای تنظیمات ویژه محیط عملیاتی میتوان فایل compose.production.yaml را در کنار compose.yaml بهکار برد. Compose بهتنهایی جایگزین ارکستریشن چندمیزبانی و امکانات پیشرفته Kubernetes نیست.
در محیط توسعه، قابلیت Compose Watch در نسخههای پشتیبانیشده Compose تغییرات فایلها را دنبال میکند و بسته به تنظیمات، همگامسازی یا بازسازی سرویس را امکانپذیر میسازد؛ این قابلیت را نباید با مانیتورینگ Production اشتباه گرفت.
سوالات متداول درباره Docker Compose
آیا Docker Compose رایگان است؟
بله. Docker Compose یکی از ابزارهای رسمی Docker است و به صورت رایگان در اختیار کاربران قرار دارد.
تفاوت Docker و Docker Compose چیست؟
آیا Docker Compose برای محیط Production مناسب است؟
بله، برای استقرار روی یک سرور می توان از Compose استفاده کرد. مناسب بودن آن به نیازهای پایداری، امنیت، پشتیبان گیری و مقیاس پذیری پروژه بستگی دارد. Compose به تنهایی مدیریت خوشه و انتقال خودکار سرویس به سرور دیگر را فراهم نمی کند.
فایل compose.yml چه کاربردی دارد؟
این فایل شامل تمام تنظیمات مورد نیاز پروژه مانند سرویس ها، Imageها، Volumeها، Networkها و متغیرهای محیطی است و امکان اجرای پروژه تنها با یک دستور را فراهم می کند.
آیا Docker Compose جایگزین Kubernetes است؟
خیر. Compose مدیریت سرویس های یک برنامه کانتینری را ساده می کند؛ Kubernetes برای ارکستریشن کانتینرها در یک خوشه امکانات گسترده تری دارد. انتخاب بین آنها به نیازهای پروژه بستگی دارد و صرفا با توسعه یا عملیاتی بودن محیط تعیین نمی شود.
جمع بندی
Docker Compose یکی از کاربردی ترین ابزارهای Docker برای مدیریت پروژه های چند کانتینری است. با استفاده از این ابزار می توان تمام سرویس های مورد نیاز یک پروژه را در قالب یک فایل تعریف کرد و تنها با یک دستور آن ها را اجرا نمود. این ویژگی باعث کاهش خطا، افزایش سرعت توسعه و ساده تر شدن مدیریت پروژه می شود.
اگر قصد پیاده سازی، بهینه سازی یا مدیریت زیرساخت های مبتنی بر Docker را دارید، تیم سربروس آماده ارائه خدمات تخصصی در زمینه خدمات Docker است. همچنین در صورتی که پروژه شما به زیرساخت های مقیاس پذیر و سازمانی نیاز دارد، می توانید از خدمات Kubernetes و خدمات DevOps سربروس نیز استفاده کنید.
برای پیاده سازی Docker Compose به کمک نیاز دارید؟
پیاده سازی Docker Compose زمانی بیشترین ارزش را ایجاد می کند که ساختار پروژه، کانتینرها، شبکه و Volumeها به درستی طراحی شده باشند. اگر قصد دارید زیرساخت Docker خود را به صورت اصولی راه اندازی کنید یا پروژه های چند سرویسی را با بهترین روش مدیریت کنید، تیم سربروس آماده ارائه راهکارهای تخصصی به شماست.
از طراحی و پیاده سازی Docker Compose گرفته تا مدیریت زیرساخت های Docker، Kubernetes و فرآیندهای DevOps، می توانید روی تجربه و تخصص کارشناسان سربروس حساب کنید.


