برای فهم بهتر ، Container را یک VM فرض کنید که دارای کرنل مشترک با میزبان یا Host خود است.
یک سیستم عامل لینوکسی نیاز به یک کرنل و مجموعهای از برنامهها دارد.
کرنل سیستم عامل در اکثر توزیعها مشترک است.
اما تفاوت بین برنامههایی است که مورد استفاده قرار میگیرد.
این برنامهها میتواند خیلی سطح پایین باشند اما برنامههای مثل PHP و … دارای چندین نسخه و Version هستند.
برای عدم مغایرت بین این چندین نسخه از برنامههای مختلف ، بحث Container مطرح شد.
Container را میتوان محیطی ایزوله برای اجرای برنامهها دانست. البته با کرنلی مشترک با Host
حالا چرا کرنل مشترک ؟ چون در ۹۹٪ مواقع کرنل مشترک است و مشکلات موجود بین نسخههای متفاوت از یک برنامه یا مشکلاتی در خصوص نصب دو برنامه در کنار هم است.
لذا در این صورت هر یک از این برنامهها را محیطی ایزوله نصب میکنیم تا هم Host اصلی ناپایدار نشود و هم بتوان چندین نسخه از یک برنامه را درون این محیطهای ایزوله داشت.