مقدمه
با گسترش روشهای توسعه نرمافزار و استفاده از معماریهای میکروسرویس، استفاده از برنامه های چند کانتینری با استفاده از ابزارهایی مانند Docker Compose به عنوان یک راهکار قدرتمند برای مدیریت و اجرای برنامهها پیشنهاد میشود. Docker Compose به توسعهدهندگان این امکان را میدهد که برنامههای متشکل از چندین کانتینر Docker را با تنظیمات مشخصی در یک فایل تنظیمات YAML به نام docker-compose.yml تعریف و مدیریت کنند.
نحوه نصب Docker Compose
قبل از شروع به ساخت فایل docker-compose.yml، اطمینان حاصل کنید که Docker Compose بر روی سیستم شما نصب شده باشد. برای نصب آن، میتوانید از دستورات زیر استفاده کنید:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
نمونه فایل docker-compose.yml
حالا بیایید یک نمونه ساده از فایل docker-compose.yml برای یک برنامه با دو کانتینر ایجاد کنیم.
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
database:
image: postgres:latest
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
در این نمونه:
version: '3': نسخه مورد استفاده از Docker Compose را مشخص میکند.services: لیست تمام کانتینرهای مورد استفاده در برنامه را تعریف میکند.web: یک کانتینر Nginx که به پورت 8080 سیستم میزبان متصل میشود.database: یک کانتینر PostgreSQL با تنظیمات محیطی برای ایجاد یک پایگاه داده.
اجرای برنامه با Docker Compose
برای اجرای برنامه با Docker Compose، کافیست دستور زیر را اجرا کنید:
docker-compose up -d
این دستور تمام کانتینرها و تنظیمات مربوطه را اجرا میکند. با استفاده از آپشن -d، اجرا به صورت زمینهای (background) انجام میشود.
مدیریت و توقف برنامه
برای توقف و حذف کانتینرها، دستور زیر را استفاده کنید:
docker-compose down
نتیجهگیری
Docker Compose به توسعهدهندگان این امکان را میدهد که برنامههای چندکانتینری را به سادگی و با تنظیمات کمتر مدیریت کنند. با استفاده از فایل docker-compose.yml، توسعهدهندگان قادر به تعیین تنظیمات، اتصالات شبکه و محیطهای متغیر برنامه خود هستند. این ابزار باعث تسهیل و شتاب دادن فرآیند توسعه و اجرای برنامهها میشود و بهبود قابل توجهی در مدیریت زیرساختهای مختلف فراهم میکند.