تقاوت Container و VM

تفاوت Container و VM

اگر یک برنامه نویس یا تکنسین IT هستید ، احتمالا این شانس را داشته اید که حداقل یک بار کلمه Docker را بشنوید. یک ابزار مناسب برای آن چه که در اصطلاح به آن Packing ، Shipping و Running Application یا همان راه اندازی اپلیکیشن ها توسط مفهومی به نام Containers می گویند.

هدف Container ها و ماشین های مجازی یکسان است. آن ها یک Application را به همراه تمام متعلقاتش ( با یا بدون سیستم عامل میزبان ) ایزوله می کنند ، به طوری که بتواند در هر محیطی که انتقال داده می شود ، اجرا گردد. . می دانیم که از این طریق به دلیل استفاده موثر از منابع پردازشی ، مصرف انرژی و هزینه نیز کاهش می یابد.

تفاوت اصلی Container ها و VM ها در رویکرد معماری آن ها است.

ماشین مجازی یا VM یک شبیه سازی از کامپیوتر واقعی ست که برنامه ها را دقیقا مانند آن اجرا می کند. این شبیه سازی توسط Hypervisor انجام می شود. هایپروایزور به مجموعه نرم افزار ، میان افزار و سخت افزاری گفته می شود که ماشین های مجازی بر روی آن اجرا می شوند. به ماشین های فیزیکی که Hypervisor بر روی آن ها راه اندازی شده است در اصطلاح رایج Host Machine یا Host گفته می شود. در نتیجه هایپروایزور قادر خواهد بود که منابع پردازشی مانند RAM و CPU حقیقی را بین ماشین های مجازی به اشتراک بگذارد. VM ای که بر روی Host اجرا می شود ، Guest Machine نامیده می شود.
Guest Machine شامل برنامه مورد نظر و هر آن چه که برای اجرای برنامه به آن نیاز است ( مانند OS ، System Binaries و کتاب خوانه ها ) خواهد بود. در نتیجه واضح است که هر ماشین مجازی Network Adaptor و سایر اجزای مختص به خود را خواهد داشت
Container مانند ماشین های مجازی منابع پردازشی خاص خود را از هاست دریافت می کنند. می توانند : فرمان ها را اجرا کنند. شبکه مجزا از یکدیگر داشته باشند. Route ها و IPTable های مختص به خود را دریافت نمایند. فایل سیستم ها در درون آن ها Mount می شود و بسیاری از ویژگی های دیگر مشترک با VM .

اما نکته در این است که در VM هر ماشین مجازی Kernel جدا از کرنل ماشین مجازی دیگر دارد. اما در کانتینرها چنین نیست و کرنل سیستم عامل بین ماشین های مجازی به اشتراک گذاشته شده است.

, , , , ,

Related Posts

برای نوشتن دیدگاه باید وارد بشوید.
فهرست