Docker Images و Containers؛ از ساخت تا اجرا

Docker Images و Containers؛ از ساخت تا اجرا

Docker Images و Containers؛ از ساخت تا اجرا
Docker به توسعه‌دهندگان و تیم‌های DevOps اجازه می‌دهد برنامه‌ها را در کانتینرهای سبک و مستقل اجرا کنند.

بخش کلیدی هر پروژه Docker، Images و Containers هستند. در این مقاله به تفاوت‌ها، نحوه ساخت، مدیریت و اجرای آن‌ها می‌پردازیم و با مثال‌های واقعی، کاربردهای عملی را نشان می‌دهیم.

۱. Docker Image چیست؟

  • Image یک بسته آماده شامل برنامه، وابستگی‌ها و تنظیمات مورد نیاز برای اجرای برنامه است.

  • Image به نوعی نقشه راه اجرای کانتینر است و قابلیت اشتراک با تیم‌های دیگر یا استفاده در محیط‌های مختلف را دارد.

📌 مثال واقعی: تیم‌های Airbnb از Docker Image آماده برای محیط تست استفاده می‌کنند تا توسعه‌دهندگان یک محیط یکسان داشته باشند.

۲. Docker Container چیست؟

  • Container نمونه‌ای در حال اجرا از یک Image است.

  • کانتینرها مستقل و سبک هستند و از منابع سیستم میزبان بهینه استفاده می‌کنند.

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

تفاوت Image و Container

ویژگی Image Container
وضعیت ایستا، فایل‌های آماده در حال اجرا، پویا
دستور ایجاد docker build docker run
تغییر غیرقابل تغییر تغییرات موقتی

۳. ساخت یک Docker Image

  1. ایجاد Dockerfile: شامل دستورات نصب و اجرای برنامه

  2. استفاده از دستور:

 
docker build -t myapp:1.0 . 
  1. بررسی Image ساخته شده:

 
docker images 

📌 مثال واقعی: یک پروژه Node.js با Dockerfile بسته‌بندی شد و روی سرور توسعه و تولید بدون هیچ تغییری اجرا شد.

۴. اجرای Container

  • ایجاد و اجرای کانتینر از Image:

 
docker run -d -p 3000:3000 myapp:1.0 
  • بررسی کانتینرهای فعال:

 
docker ps 
  • متوقف کردن کانتینر:

 
docker stop <container_id> 

نکته حرفه‌ای

  • استفاده از Volumes برای ذخیره داده‌ها

  • اتصال شبکه‌ها برای ارتباط بین چند کانتینر

📌 مثال واقعی: Netflix از کانتینرها برای اجرای چند سرویس میکروسرویسی استفاده می‌کند و Volumeها را برای ذخیره کش‌ها و لاگ‌ها به کار می‌برد.

۵. بهینه‌سازی Image و Container

  • کوچک نگه داشتن Image: حذف بسته‌های اضافی و فایل‌های موقت

  • لایه‌بندی مناسب Dockerfile: استفاده از دستورات RUN, COPY, CMD به شکل بهینه

  • کش Image: استفاده از کش Docker برای ساخت سریع‌تر Imageهای بعدی

📌 مثال واقعی: تیم‌های Spotify با بهینه‌سازی Imageها، زمان راه‌اندازی کانتینرها را از ۳۰ ثانیه به کمتر از ۵ ثانیه کاهش دادند.

۶. مدیریت کانتینرهای چندگانه

  • ابزارهایی مانند Docker Compose برای اجرای چند کانتینر مرتبط همزمان

  • تعریف سرویس‌ها، شبکه‌ها و Volumeها در فایل docker-compose.yml

  • راهکار مناسب برای محیط‌های توسعه و تولید

📌 مثال واقعی: تیم‌های Airbnb و Etsy با Docker Compose محیط‌های چند کانتینر برای دیتابیس، کش و اپلیکیشن ایجاد کردند.

۷. جمع‌بندی

  • Image نقشه راه اجرای برنامه است و Container نمونه در حال اجرای آن.

  • با مدیریت صحیح Image و Container، تیم‌ها می‌توانند برنامه‌ها را سریع، قابل حمل و با مصرف منابع بهینه اجرا کنند.

  • ترکیب Docker با Volumeها و شبکه‌بندی مناسب، محیط امن و پایدار برای توسعه و تولید ایجاد می‌کند.

🔑 کلیدواژه‌ها:  Docker Image، Docker Container، ساخت Image در Docker، اجرای کانتینر، مدیریت کانتینر Docker، Docker Compose