مارک پلاس

تکنولوژی نوین اینترنتی

کانتینر (Container)

دسته‌بندی‌ها

کانتینر (Container)

📦کانتینر و Docker — زیرساخت مدرن توسعه و استقرار نرم‌افزار


1. مقدمه

کانتینر (Container) یک محیط مجازی سبک است که شامل کد، کتابخانه‌ها، پیکربندی‌ها و وابستگی‌ها برای اجرای نرم‌افزار می‌باشد. برخلاف ماشین‌های مجازی (VM)، کانتینرها سبک‌تر و سریع‌تر هستند.

Docker محبوب‌ترین پلتفرم برای ساخت، اجرا و مدیریت کانتینرهاست.


2. چرا از کانتینر و Docker استفاده می‌کنیم؟

✅ اجرای یکسان نرم‌افزار در محیط‌های مختلف (dev → test → prod)
✅ مصرف منابع پایین‌تر نسبت به VMها
✅ راه‌اندازی سریع و مقیاس‌پذیر
✅ قابل حمل بودن (portable)
✅ سازگاری با DevOps و CI/CD
✅ پشتیبانی عالی توسط Kubernetes


3. تفاوت Docker و Virtual Machine

ویژگیDockerVM
سیستم‌عامل جداگانه
سرعت راه‌اندازیبسیار سریعکندتر
منابع مصرفیپایینبالا
قابلیت حملبالاکمتر
مناسب برایمیکروسرویس‌ها، DevOpsاپلیکیشن‌های قدیمی

4. معماری Docker

🧩 اجزای اصلی:

  • Docker Engine: موتور اصلی اجرا (daemon)

  • Docker CLI: ابزار خط فرمان برای ارتباط با داکر

  • Docker Image: قالب آماده اجرای کانتینر

  • Docker Container: نمونه‌ی در حال اجرای یک ایمیج

  • Dockerfile: فایل توصیف نحوه ساخت ایمیج

  • Docker Hub: مخزن مرکزی برای ذخیره و اشتراک ایمیج‌ها


5. دستورات پایه Docker

bash
# بررسی نسخه داکر docker --version # دریافت یک ایمیج آماده docker pull nginx # اجرای کانتینر docker run -d -p 8080:80 nginx # مشاهده کانتینرها docker ps # توقف یک کانتینر docker stop <container_id> # حذف کانتینر یا ایمیج docker rm <container_id> docker rmi <image_id>

6. ساخت Dockerfile ساده

Dockerfile
# Dockerfile FROM python:3.10-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["python", "main.py"]

سپس:

bash
docker build -t my-python-app . docker run -d -p 5000:5000 my-python-app

7. Docker Compose برای اجرای چند کانتینر

yaml
# docker-compose.yml version: "3" services: web: image: nginx ports: - "8080:80" app: build: . ports: - "5000:5000" depends_on: - db db: image: postgres environment: POSTGRES_PASSWORD: mypassword

اجرا با:

bash
docker-compose up -d

8. حجم‌ها و شبکه‌ها در Docker

🔹 Volume برای ذخیره‌سازی دائمی داده‌ها
🔹 Network برای ارتباط بین کانتینرها

bash
docker volume create mydata docker network create mynet

9. کاربردهای Docker در دنیای واقعی

  • توسعه میکروسرویس‌ها

  • اجرای نرم‌افزار در محیط‌های توسعه مختلف

  • ساخت CI/CD pipeline با Jenkins یا GitLab CI

  • استقرار در Kubernetes

  • اجرای اپ‌های مختلف در لپ‌تاپ بدون تداخل


10. ابزارها و منابع مرتبط

ابزارکاربرد
Docker Desktopاجرای Docker در ویندوز و مک
Docker Composeمدیریت چند کانتینر
Portainerرابط گرافیکی مدیریت کانتینرها
Docker Hubمخزن اشتراک‌گذاری ایمیج‌ها
Diveبررسی لایه‌های ایمیج داکر
Slim.AIبهینه‌سازی سایز ایمیج‌ها

11. امنیت در Docker

  • استفاده از تصاویر رسمی و معتبر

  • محدود کردن دسترسی‌ها با User و Capabilities

  • اسکن ایمیج‌ها با Docker scan یا Trivy

  • استفاده از Secrets برای نگهداری اطلاعات حساس


12. جمع‌بندی

Docker و کانتینرها دنیای توسعه نرم‌افزار را دگرگون کردند. با ارائه محیطی استاندارد، سبک و مقیاس‌پذیر، امکان استقرار سریع و مطمئن را فراهم کرده‌اند. یادگیری Docker برای هر برنامه‌نویس و DevOps ضروری است.


📚 منابع یادگیری بیشتر

محتوای مرتبط

پست‌های مرتبط