تفاوت 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 آن داده هم پاک میشود.
