همان طور که قبلا نیز گفته شد با استفاده از تکنولوژی Docker می توان
همه برنامه هایی که در بسترهای متفاوت توسعه داده شده است و برای اجرا نیازمند
منابع گوناگون هستند را بر روی یک Server قرار داده و از آن ها استفاده نمود. برای
این کار لازم است که برنامه ها را به صورت Containerهایی ایجاد نموده و در صورت
نیاز آن ها را استفاده نمود. به این ترتیب برای مثال برنامه هایی که تحت ویندوز
و لینوکس اجرا می شوند هر دو می توانند روی یک Server قرار گیرند.
این که بتوان برنامه های مختلف را روی یک Server قرار داد و آن ها را
اجرا نمود توسط ماشین مجازی نیز قابل انجام است. به این صورت که می توان بر روی یک
Server ماشین های مجازی مختلفی ایجاد نمود و روی هر کدام از آن ها سیستم عامل و نرم
افزارهای مجزایی را نصب نمود. به این ترتیب برای مثال برنامه هایی که تحت ویندوز
قابل اجرا هستند را روی ماشین ویندوزی و برنامه هایی که تحت لینوکس اجرا می شوند را
روی ماشین لینوکسی قرار داد.
تفاوت Docker و VM
اما تفاوت استفاده از Docker و VM در چیست؟
شکل زیر شمایی از Server و منابع آن در هر دو تکنولوژی را نمایش می
دهد.
طبق آن چه در شکل مشاهده می نمایید:
هنگام استفاده از ماشین مجازی برای هر کدام از ماشین های مجازی باید
سیستم عامل مجزایی نصب شود که این مستلزم منابع بیشتر نرم افزاری و سخت افزاری بوده
و همچنین نگهداری آن ها نیز مشکل تر خواهد بود. اما در Docker نیازی به نصب سیستم
عامل مجزا وجود ندارد و تنها با قرار دادن Containerهای مختلف بر روی ماشین قادر به
اجرای برنامه ها خواهیم بود.
در ماشین های مجازی منابع سخت افزاری و نرم افزاری Server بین همه
ماشین ها تقسیم می شود و در این صورت ممکن است در زمانی که یک ماشین منایع
بلااستفاده داشته باشد، ماشین دیگری نیاز به منابع بیشتری داشته باشد و با کمبود
منابع مواجه شده و از سرویس دهی خارج شود. اما در Docker تقسیم بندی ثابتی بین
منابع انجام نشده است و هر برنامه به کل منابع Server دسترسی داشته و بسته به نیاز
خود در هر زمان منابع را مورد استفاده قرار می دهد. در این صورت امکان سرویس دهی
بهتر خواهد بود.
*منابع: http://www.docker.com
Docker VS VM ، تفاوت داکر و ماشین مجازی