صبر کنید...
مرکز آموزش میلاد سرور

اجرای چند سرویس با Docker Compose؛ نمونه عملی

تصویر آموزشی اجرای چند سرویس با Docker Compose؛ نمونه عملی
راهنمای تصویری و مرحله‌به‌مرحله میلاد سرور

Compose چند کانتینر (وب، دیتابیس، کش) را با یک فایل YAML مدیریت می‌کند و راه‌اندازی پروژه را تکرارپذیر می‌کند.

آخرین به‌روزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی

در این آموزش چه یاد می‌گیرید؟
  • اجرای چند سرویس با Docker Compose؛ نمونه عملی
  • Compose را نصب یا بررسی کنید
  • با compose up راه‌اندازی و لاگ را بررسی کنید

چرا این موضوع مهم است؟

موضوع Docker یکی از پایه‌های نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفه‌جویی در زمان پشتیبانی می‌شود.

هدف این مقاله، اجرای قابل تکرار و امن مراحل روی سرورهای مجازی ایران و اروپاست؛ نه صرفاً کپی چند دستور.

پیش‌نیازها

  • دسترسی SSH با کاربر root یا کاربر دارای sudo
  • Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیع‌های مشابه)
  • نسخه پشتیبان از فایل‌ها و دیتابیس‌های مهم
  • اطلاعات اتصال و بکاپ دیتابیس MySQL

راهنمای گام‌به‌گام

گام 1 — Compose را نصب یا بررسی کنید

Compose را نصب یا بررسی کنید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.

گام 2 — فایل docker-compose.yml بسازید

فایل docker-compose.yml بسازید. این کار را در بازه کم‌ترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.

گام 3 — سرویس دیتابیس و volume تعریف کنید

سرویس دیتابیس و volume تعریف کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.

گام 4 — سرویس وب و شبکه را تعریف کنید

سرویس وب و شبکه را تعریف کنید. پس از اجرا، وضعیت سرویس و لاگ‌ها را کنترل کنید؛ تغییر بدون بررسی می‌تواند خطای پنهان ایجاد کند.

گام 5 — متغیرهای محیطی را در .env بگذارید

متغیرهای محیطی را در .env بگذارید. اگر روی چند سرور کار می‌کنید، این مورد را یک‌بار روی محیط تست اجرا و سپس روی تولید اعمال کنید.

گام 6 — با compose up راه‌اندازی و لاگ را بررسی کنید

با compose up راه‌اندازی و لاگ را بررسی کنید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیش‌فرض پرهیز کنید.

نمودار مراحل اجرای چند سرویس با Docker Compose؛ نمونه عملی
شش گام اصلی این آموزش در یک نگاه

نمونه دستورها

نمونه دستورهای اجرای چند سرویس با Docker Compose؛ نمونه عملی
دستورهای پیشنهادی؛ مقادیر نمونه را با اطلاعات سرور خود جایگزین کنید.
services:
  web:
    image: nginx:alpine
    ports: ['8080:80']
  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: CHANGE_ME

نکات امنیتی و بهینه‌سازی

  • نسخه پکیج‌ها و سیستم‌عامل را به‌روز نگه دارید؛ بسیاری از نفوذها از نسخه‌های قدیمی شروع می‌شوند.
  • دسترسی‌ها را حداقلی نگه دارید و فقط پورت‌ها و کاربران لازم را باز بگذارید.
  • پیش از هر تغییر بزرگ، نسخه پشتیبان قابل بازیابی تهیه کنید و بازیابی را تست کنید.

خطاهای رایج و راه‌حل

  • قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
  • خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راه‌حل نیست.
  • قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
نکته طلایی: رمزها را داخل compose ننویسید؛ از فایل .env با مجوز 600 استفاده کنید و آن را در Git نگذارید.

سؤالات متداول

تفاوت up و start چیست؟

up کانتینرها و شبکه را می‌سازد؛ start فقط سرویس‌های موجود را اجرا می‌کند.

چطور داده دیتابیس حفظ می‌شود؟

با volume نام‌دار و بکاپ منظم از آن volume یا dump دیتابیس.

سرور مناسب نیازتان را انتخاب کنید

میلاد سرور پلن‌های اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آی‌پی اختصاصی و قیمت شفاف ارائه می‌کند. برای مقایسه همه کشورها فهرست کامل سرورهای بین‌الملل را ببینید.

جمع‌بندی

اگر به منابع بیشتری نیاز دارید، پیش از ارتقای سرور ابتدا گلوگاه واقعی را با متریک مشخص کنید.

این آموزش برای شما مفید بود؟نظر شما به بهتر شدن آموزش‌ها کمک می‌کند.
اشتراک‌گذاری:تلگرامواتساپX