Docker Compose چیست؟ اجرای چند کانتینر با یک دستور
اگر با داکر کار کنید، این صحنه برایتان آشناست: یک کانتینر برای اپ، یکی برای دیتابیس، یکی برای Redis — و هر بار راهاندازی، چند دستور طولانی docker run با دهها فلگ که باید به ترتیب درست اجرا شوند. Docker Compose دقیقاً برای پایاندادن به همین آشفتگی ساخته شده: همهی سرویسها در یک فایل، اجرا با یک دستور.
Docker Compose چیست؟
کامپوز ابزاری است که با آن کل اپلیکیشن چندکانتینری را در یک فایل YAML به نام compose.yaml (یا docker-compose.yml) توصیف میکنید: چه سرویسهایی، با کدام ایمیج، چه پورتها و چه متغیرهایی. بعد بهجای چندین دستور دستی، فقط مینویسید docker compose up و همهچیز با هم و با ترتیب درست بالا میآید.
یک مثال واقعی
یک وردپرس کامل با دیتابیس، در کمتر از بیست خط:
services:
wordpress:
image: wordpress:latest
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: secret
depends_on:
- db
db:
image: mariadb:11
environment:
MARIADB_ROOT_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
و اجرا:
docker compose up -d
همین. وردپرس و دیتابیس با هم بالا میآیند، به هم وصلاند و دادهی دیتابیس هم در Volume ماندگار است.
دستورات کاربردی
| دستور | کاربرد |
|---|---|
docker compose up -d | اجرای همه سرویسها در پسزمینه |
docker compose ps | وضعیت سرویسها |
docker compose logs -f | مشاهده زنده لاگها |
docker compose pull | بهروزرسانی ایمیجها |
docker compose down | توقف و حذف کانتینرها (Volumeها میمانند) |
چرا Compose بهجای دستورهای دستی؟
- مستندسازی خودکار: فایل کامپوز خودش توضیح کامل زیرساخت است؛ عضو جدید تیم با یک دستور همان محیط را بالا میآورد.
- تکرارپذیری: محیط توسعه، تست و سرور همه از یک فایل ساخته میشوند.
- مدیریت ساده: آپدیت یعنی
pullوupدوباره؛ نه بازسازی دستی همهچیز.
جمعبندی
Docker Compose سادهترین راه مدیریت اپلیکیشنهای چندکانتینری روی یک سرور است — یک فایل، یک دستور، محیط کامل. اگر هنوز داکر را روی سرور ایرانی راه نینداختهاید، اول آموزش نصب داکر بدون تحریم را ببینید؛ و وقتی پروژه به چند سرور و مقیاسبندی خودکار رسید، قدم بعدی کوبرنتیز مدیریتشده است.