آشنایی با Docker و Docker Compose برای توسعهدهندگان وب
۱۱ مهر ۱۴۰۵
نویسنده:
حسن محمدزاده

مشکلی که Docker حل میکند
جملهی معروف «روی سیستم من که کار میکرد!» دقیقاً همان مشکلیست که Docker حل میکند. Docker اپلیکیشن شما را همراه با تمام وابستگیها (نسخهی PHP، اکستنشنها، تنظیمات) در یک «کانتینر» بستهبندی میکند که روی هر سیستمی، از لپتاپ توسعهدهنده تا سرور تولید، دقیقاً یکسان اجرا میشود.
Docker Compose: مدیریت چند سرویس با یک فایل
پروژههای واقعی معمولاً فقط یک اپلیکیشن نیستند؛ یک بکاند Laravel، یک دیتابیس MySQL، یک frontend Next.js و شاید Redis یا Elasticsearch هم لازم دارید. با Docker Compose، تمام این سرویسها را در یک فایل docker-compose.yml تعریف میکنید و با یک دستور (docker compose up) همه را همزمان بالا میآورید — دقیقاً همان الگویی که در این پروژه هم استفاده شده است.
چند نکتهی عملی
- از named volumes برای دادههای دیتابیس استفاده کنید تا با هر بار ریاستارت کانتینر، اطلاعات از بین نرود.
- شبکهی داخلی Docker Compose به سرویسها اجازه میدهد با نام سرویس (مثلاً
mysqlبهجایlocalhost) با هم صحبت کنند. - برای محیط توسعه از
volumesبرای mount کردن کد استفاده کنید تا بدون rebuild، تغییرات را ببینید.
نتیجه
Docker و Docker Compose یادگیری اولیهای دارند، اما این سرمایهگذاری کوچک باعث میشود onboarding اعضای جدید تیم، دیپلوی، و هماهنگی محیط توسعه با محیط تولید بسیار سادهتر شود.