سرور ابری برای Docker — راهنمای انتخاب و اجرای کانتینرها

بهترین سرور برای اجرای Docker و Docker Compose چه ویژگی‌هایی باید داشته باشد؟ راهنمای انتخاب منابع، تنظیمات بهینه و نکات امنیتی برای میزبانی کانتینرها.

نویسنده

تیم فنی زیر ساخت افرادین

دسته‌بندی

Docker

زمان مطالعه

01 Min read

تاریخ انتشار

25 Jul, 2026

سرور ابری برای Docker — راهنمای انتخاب و اجرای کانتینرها

Docker دنیای توسعه و استقرار نرم‌افزار را متحول کرده است—از محیط توسعه یکسان برای همه اعضای تیم گرفته تا استقرار بدون دردسر در Production. اما Docker روی هر سروری خوب اجرا نمی‌شود. کانتینرها عاشق RAM هستند، به CPU سریع نیاز دارند و بدون فضای ذخیره‌سازی کافی، imageها و volumeها خیلی زود دیسک را پر می‌کنند.

Docker روی چه سروری اجرا شود؟

پاسخ کوتاه: VPS با حداقل ۲ گیگ RAM و ۲۰ گیگ SSD. اما مثل همیشه، ماجرا جزئیات بیشتری دارد.

Docker ذاتاً سبک است—برخلاف ماشین‌های مجازی، کانتینرها کرنل سیستم‌عامل میزبان را به اشتراک می‌گذارند و overhead بسیار کمتری دارند. اما مشکل از جایی شروع می‌شود که چندین کانتینر را هم‌زمان اجرا می‌کنید. هر کانتینر:

  • RAM مخصوص خودش را مصرف می‌کند
  • فضای دیسک برای image و volume نیاز دارد
  • CPU time از هسته‌های میزبان می‌گیرد

پس قانون سرانگشتی این است: RAM مورد نیاز همه کانتینرها را جمع بزنید + ۱ گیگ برای سیستم‌عامل و Docker daemon.

چه CPU و RAM برای Docker لازم است؟

سناریوCPURAMفضای ذخیره‌سازی
توسعه (۲-۳ کانتینر سبک)۲ هسته۲-۴ گیگ۳۰ گیگ SSD
میکروسرویس‌ها (۵-۸ کانتینر)۴ هسته۸ گیگ۶۰ گیگ NVMe
CI/CD Pipeline + Production۶-۸ هسته۱۶ گیگ۱۲۰ گیگ NVMe
Kubernetes (minikube / k3s)۴-۸ هسته۱۶-۳۲ گیگ۲۰۰+ گیگ NVMe

نکته مهم Docker Desktop: روی سرور لینوکسی، Docker Engine را مستقیم نصب کنید—نیازی به Docker Desktop ندارید. Docker Engine سبک‌تر است و منابع کمتری مصرف می‌کند.

Docker Compose — استاندارد طلایی

برای ۹۰٪ پروژه‌ها، Docker Compose کافی است و نیازی به Kubernetes ندارید. یک فایل docker-compose.yml خوب، تمام سرویس‌های شما را—از اپلیکیشن و دیتابیس گرفته تا Redis و Nginx—مدیریت می‌کند.

مثال: یک پروژه Laravel با MySQL و Redis:

version: '3.8'
services:
  app:
    build: .
    ports:
      - "8080:80"
    depends_on:
      - mysql
      - redis
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - mysql_data:/var/lib/mysql
  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data

volumes:
  mysql_data:
  redis_data:

نکته: برای volumeها حتماً از named volumes استفاده کنید—مدیریت بک‌آپ و migration را بسیار ساده‌تر می‌کند.

فضای ذخیره‌سازی — دشمن پنهان Docker

Docker می‌تواند بی‌سروصدا دیسک شما را پر کند. مقصران اصلی:

  • Imageهای قدیمی: هر بار که docker build یا docker pull می‌کنید، image جدید جای image قبلی را نمی‌گیرد—لایه‌های unused روی دیسک می‌مانند
  • Containerهای متوقف‌شده: containerهای stop شده فضای دیسک اشغال می‌کنند
  • Volumeهای orphan: volumeهایی که به هیچ containerای متصل نیستند

راه حل—هر چند وقت یکبار این دستورات را اجرا کنید:

docker system prune -a --volumes

این دستور تمام containerهای متوقف، imageهای unused، networkهای بدون استفاده و volumeهای orphan را پاک می‌کند. روی سرور Production با احتیاط اجرا کنید!

امنیت Docker — فراموش نکنید

Docker امن است، به شرطی که شما امنیت را رعایت کنید:

  • هرگز containerها را با --privileged اجرا نکنید مگر اینکه واقعاً مجبور باشید
  • از imageهای رسمی استفاده کنید—مثلاً mysql:8.0 به جای mysql:latest
  • پورت‌های container را به دنیای بیرون expose نکنید—از reverse proxy (مثل Traefik یا Nginx) استفاده کنید
  • Docker daemon را به اینترنت expose نکنید—پورت ۲۳۷۵ و ۲۳۷۶ باید بسته باشند
  • Regular backup از volumeها بگیرید—volumeها در /var/lib/docker/volumes/ ذخیره می‌شوند

Nginx Reverse Proxy برای Docker

به جای expose کردن مستقیم پورت containerها، از یک reverse proxy استفاده کنید. دو گزینه عالی:

  • Traefik: مخصوص Docker طراحی شده، با labelهای داکر کار می‌کند، SSL خودکار با Let’s Encrypt
  • Nginx Proxy Manager: رابط کاربری گرافیکی، مدیریت ساده SSL و domain

پیشنهاد ما برای پروژه‌های کوچک تا متوسط، Nginx Proxy Manager است—راه‌اندازی ساده، مدیریت راحت SSL و قابلیت‌های کافی برای اکثر نیازها.

جمع‌بندی: سرور Docker شما

برای یک محیط Docker استاندارد—چند میکروسرویس، یک دیتابیس، Redis و یک reverse proxy:

  • CPU: ۴ هسته
  • RAM: ۸ گیگابایت
  • ذخیره‌سازی: ۶۰ گیگابایت NVMe SSD
  • سیستم‌عامل: Ubuntu 22.04 LTS
  • Docker: Docker Engine + Docker Compose
  • نظارت: Portainer یا Docker Dashboard

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


مقالات مرتبط