CodeShot
Midسختی 3 از ۵· در 69٪ مصاحبه‌های این حوزه پرسیده شده

تفاوت Docker Image و Docker Container چیست؟

نشان کردن

پاسخ کوتاه

Image یک قالب فقط‌خواندنی و غیرقابل‌تغییر است؛ Container نمونه در حال اجرای آن Image است — دقیقاً مثل رابطه Class و Instance.

پاسخ کامل

Image از روی یک Dockerfile ساخته می‌شود و شامل کد برنامه، Runtime، کتابخانه‌ها و تنظیمات لازم برای اجراست. Image تغییر نمی‌کند؛ هر بار که چیزی عوض شود، یک Image جدید (با Tag/Hash جدید) ساخته می‌شود.

Container وقتی با docker run یک Image اجرا می‌شود ساخته می‌شود: یک لایه قابل‌نوشتن روی Imageی فقط‌خواندنی اضافه می‌شود. می‌توان از یک Image، هم‌زمان چند Container مستقل اجرا کرد.

نکته مهم: تغییراتی که داخل یک Container در حال اجرا انجام می‌شود (مثلاً نوشتن یک فایل)، با حذف آن Container از بین می‌رود — مگر با Volume به بیرون Mount شده باشد.

مثال کد

docker build -t myapi:v1 .     # ساخت Image
docker run -d --name c1 myapi:v1  # اجرای Container اول
docker run -d --name c2 myapi:v1  # اجرای Container دوم از همان Image

نکته مهم

منبع کامل موضوع: Docker Overview — مستندات رسمی.

اشتباه رایج

❌ ذخیره داده مهم داخل لایه قابل‌نوشتن یک Container بدون Volume — با docker rm آن داده هم پاک می‌شود.

شرکت‌هایی که این سؤال را پرسیده‌اند

دیجی‌کالا