خودآموز داکر: درس ۰۲ - انواع مجازی‌سازی

Image for post
Image for post

پیش از پرداختن به پودمان‌های داکر، بهتره درمورد انواع مجازی‌سازی‌ها و تفاوت‌هایشان کمی بدانیم.

در این درسگفتار می‌آموزی:

  • چند نوع مجازی‌سازی وجود دارد؟
  • تفاوت کانتینر با ماشین مجازی چیست؟

توجه. چون علاقه زیادی به آسان کردن [آسانیدن] و باقاعده کردن زبان دارم، واژگان زیادی ساخته‌ام؛ که بدلیل ناشناخته بودن اشان تنها برای شناساندن ازشان استفاده کرده‌ام [استفاده‌ام]. ریشه‌ی بیشتر این واژگان آشکار است؛ و در ویکی‌واژه تعریفشان کرده‌ام [تعریفته‌ام اشان] یا خواهم کرد [تعریفینم اشان].
امیدوارم خوشایندت باشد.


دو روش برای مجازی‌سازی وجود دارد؛ بنام‌های:

  • ماشین مجازی (Virtual Machine)؛
  • کانتینر (Container).

در روش ماشین مجازی، سخت‌افزار مجازی‌سازی می‌شود [مجازیزشد]. بعبارتی، یه ماشین مجازی دارای همان سخت‌افزارهای یه ماشین واقعی است؛ ولی از جنس مجازی! و هر کدامشان بشکل مستقل دارای سیستم‌عامل، فایل‌های دودویی، و نرم‌افزارهای خودش است.

اجرای همزمان دو سیتم‌عامل مختلف با استفاده از ماشین مجازی
اجرای همزمان دو سیتم‌عامل مختلف با استفاده از ماشین مجازی
اجرای همزمان دو سیتم‌عامل مختلف با استفاده از ماشین مجازی

ولی در روش کانتینر، «سیستم‌عامل» مجازی‌سازی می‌شود؛ یعنی یه سیستم‌عامل، بنام هسته، دستورهای هر کانتینر را متناسب با محتوای خودش (شامل فایل‌های دودویی، نرم‌افزارها، و ...) اجرا می‌کند [می‌اجراید]. و اینجوری بنظر می‌رسد که هر کانتینر دارای سیستم‌عامل خودش است.

اجرا شدن (اجرایشتن) چند کانتینر با یه تک سیستم‌عامل
اجرا شدن (اجرایشتن) چند کانتینر با یه تک سیستم‌عامل
اجرا شدن (اجرایشتن) چند کانتینر با یه تک سیستم‌عامل

تفاوت ماشین مجازی با کانتینر

بنابر مطالبی که بیان شد، ماشین مجازی با کانتینر دارای تفاوت‌های زیر است:

  • مجازی‌سازی در ماشین مجازی در سطح سخت‌افزار است، ولی در کانتینر در سطح سیستم‌عامل؛
  • در ماشین مجازی مجزاسازی [مجزایش] (Isolation) با مستقل‌سازی [مستقلیدن] ماشین‌ها انجام می‌شود، ولی در کانتینر با ایجاد پردازش‌های مستقل؛
تفاوت ماشین مجازی با کانتینر
تفاوت ماشین مجازی با کانتینر
تفاوت ماشین مجازی با کانتینر

در کانتینر سیتم‌عامل، فایل‌های دودویی، و نرم‌افزار‌ها می‌تواند بین چندین کانتینر به‌اشتراک گذاشته شود.

اشتراکیدن لایه‌ها بین کانتینرها
اشتراکیدن لایه‌ها بین کانتینرها
اشتراکیدن لایه‌ها بین کانتینرها

خلاصه، کانتینر برای مجازی‌سازی [مجازیدن] سیتم‌عامل است، بطوریکه چندین بارکاری (workload) بتواند توسط یه تک سیستم‌عامل اجرا شود [اجرایشد]، ولی ماشین مجازی برای مجازی‌سازی سخت‌افزار.

خب، تا اینجا با کاربرد داکر و انواع مجازی‌سازی‌ها آشنا شدیم، در درسگفتار بعد درمورد معماری داکر می‌آموزی.