تفاوت داکر با ماشین مجازی چیست؟ مزایا استفاده از آنها چیست؟
Docker چیست؟ ماشین مجازی چیست؟ تفاوت داکر با ماشین مجازی ( virtual machine ) چیست؟ در این مقاله قصد داریم تا به این سوالات پاسخ دهیم. قابلیتهای ماشینهای مجازی را با مزایای اضافی ارائه میدهد. وقتی صحبت از زیرساختهای ابری میشود، VMware مدتهاست که به دلیل مزایای فراوان خود به عنوان استاندارد مورد استفاده قرار میگیرد:
- توانایی آن در اجرای چندین محیط سیستم عامل که بر یکدیگر تاثیر میگذارد
- انتخاب انواع ماشینهای مجازی و مجموعه ابزارهای یکپارچه آن که باعث ایجاد VM میشود.
- مدیریت آسان
با این حال ، این را در نظر بگیرید: اگر شما جایگزینی برای VMware داشتید که سبکتر، مقرونبهصرفهتر و مقیاسپذیرتر بود؟ این دقیقاً همان چیزی است که Docker در اختیار شما قرار میدهد؛ فناوری کانتینری که به کاربران امکان میدهد برنامههای توزیع شده را توسعه دهند.
ماشین مجازی چیست؟
در این قسمت از تشریح تفاوت داکر با ماشین مجازی ( vitual machine ) قصد داریم تا به تعریف ماشین مجازی بپردازیم. مفهوم ماشین مجازی ساده است: این یک سرور مجازی است که از سرور سخت افزار ی استفاده میکند. یک ماشین مجازی به سخت افزار فیزیکی سیستم متکی است تا از همان محیطی که برنامههای خود را بر روی آن نصب میکنید استفاده کند.
بسته به مورد استفاده، میتوانید از یک ماشین مجازی سیستم (که کل سیستم عامل را به عنوان یک فرایند اجرا میکند و به شما امکان میدهد یک ماشین واقعی را جایگزین ماشین مجازی کنید) استفاده کرده یا ماشینهای مجازی را پردازش کنید که به شما امکان میدهد برنامههای کامپیوتری را به تنهایی در محیط مجازی به اجرا درآورید.
تفاوت داکر با ماشین مجازی ؛ داکر چیست ؟
Docker یک پروژه منبع باز است که یک راه حل توسعه نرم افزار ی معروف به ظروف ارائه میدهد. برای درک بهتر داکر، باید بدانید containers دقیقا به چه معناست. به زبان ساده، containers یک بسته سبک وزن، مستقل و قابل اجرا از یک نرم افزار است که شامل تمام موارد مورد نیاز برای اجرای آن است.
و از آنجا که containers مستقل از پلتفرم هستند، Docker میتواند در هر دو سیستم عامل مبتنی بر ویندوز و لینوکس ( linux ) اجرا شود. در حقیقت، Docker همچنین میتواند در صورت لزوم در یک ماشین مجازی ( virtual machine ) اجرا شود. هدف اصلی Docker این است که به شما امکان میدهد برنامههای سرویس کوچک را در معماری توزیع شده اجرا کنید.
اگر میخواهید به درستی با مفهوم داکر آشنا شوید، پیشنهاد میکنیم مقالهی docker داکر چیست را حتما مطالعه کنید.
معماری داکر
معماری داکر نیز بر اساس سرویسدهنده و سرویسگیرنده است. با این حال، به دلیل ویژگیهای موجود، کمی پیچیدهتر از ماشین مجازی است. این شامل چهار قسمت اصلی است:
تفاوت داکر با ماشین مجازی ( virtual machine ) ؛ مشتری داکر
این نحوه برخورد شما با ظروف است. آن را رابط کاربری Docker بنامید.
اشیاء Docker
containers و images اجزای اصلی Docker شما هستند. قبلاً اشاره کردیم که container محل نگهداری نرم افزار شما هستند و میتوان آنها را خواند و نوشت. تصاویر کانتینر فقط خواندنی هستند و برای ایجاد container جدید استفاده میشوند. در ادامهی مقالهی تفاوت داکر با ماشین مجازی با ما همراه باشید.
Docker Daemon
یک فرایند پس زمینهای است که وظیفه دریافت دستورات و ارسال آنها به ظروف از طریق خط فرمان را بر عهده دارد.
Docker Registry
که معمولاً به عنوان Docker Hub شناخته میشود، این جایی است که تصاویر container شما ذخیره و بازیابی میشوند.
موارد استفاده مشترک
اکنون که ایدهای درباره ظروف VM و Docker دارید، درک موارد استفاده احتمالی برای هر دو مهم است. در حالیکه هر دو کمابیش برای توسعه برنامهها مورد استفاده قرار میگیرند، تفاوتها از اینجا شروع میشود.
مورد استفاده در دنیای واقعی برای ماشینهای مجازی
بانک استارلینگ یک بانک دیجیتالی است که تنها در یک سال بر روی ماشینهای مجازی ارائه شده توسط AWS ساخته شده است. این امر به دلیل کارایی ماشینهای مجازی بر روی سرورهای سخت افزار ی سنتی امکان پذیر است. نکته مهم این است که هزینه Starling Bank فقط یک دهم سرورهای سنتی است.
استفاده واقعی برای Docker
Paypal از Docker برای هدایت “کارایی هزینه و امنیت سازمانی” برای زیرساختهای خود استفاده میکند. Paypal VM ها و container را در کنار هم اجرا میکند و میگوید که ظروف تعداد VM های مورد نیاز برای اجرا را کاهش میدهد.
توسعه برنامه: Docker در درجه اول برای بسته بندی کد برنامه و وابستگیهای آن استفاده میشود. همان ظرف را میتوان از Dev به QA و بعداً به IT به اشتراک گذاشت. بنابراین قابلیت حمل را در خط لوله (pipeline) توسعه ایجاد میکند.
اجرای برنامههای سرویسهای خرد: Docker به شما امکان میدهد هر سرویس میکرو که یک برنامه را در ظرف مخصوص خود تشکیل میدهد، اجرا کنید. به این ترتیب، معماری توزیع شده فعال میشوند.
Docker Containers در مقابل VM ها
سرانجام، به سوال بزرگ میرسیم: تفاوت داکر با ماشین مجازی چیست؟ همه چیز به این میرسد که میخواهید با آنها چه کار کنید. در ادامه، ما ضمن تشریح تفاوت داکر با ماشین مجازی به چند مزیت Docker نسبت به ماشین مجازی (به ویژه Docker در مقابل VMware ) و بالعکس اشاره میکنیم.
داکر: رایگان نسخه Enterprise از 750 دلار در سال شروع میشود.
VMware vSphere : مجوز استاندارد از 995 دلار شروع میشود. (برای آشنایی با مجازی ساز vSphere، مقاله vSphere چیست را در وبلاگ ابرآراز مطالعه کنید.)
تفاوت داکر با ماشین مجازی ؛ مزایای ماشینهای مجازی
دسترسی به ابزارهای مرتبط با ماشین مجازی راحتتر و کار با آنها سادهتر است. Docker دارای اکوسیستم ابزار پیچیدهتری است که از ابزارهای تحت مدیریت Docker و ابزارهای شخص ثالث تشکیل شده است.
همانطور که قبلاً ذکر شد، هنگامی که یک ماشین مجازی راه اندازی شد، میتوانید یک نمونه Docker را در آن VM راه اندازی کنید و ظرف docker را در VM (که در حال حاضر روش غالب اجرای ظروف است) اجرا کنید. به این ترتیب، ظروف و ماشینهای مجازی متقابل نیستند و میتوانند در کنار یکدیگر وجود داشته باشند.
تفاوت داکر با ماشین مجازی ؛ مزایای داکر containers
ظروف داکر جدا شده از فرایند هستند و نیازی به یک ناظر سخت افزاری ندارند. این بدان معناست که ظروف Docker بسیار کوچکتر هستند و به منابع بسیار کمتری نسبت به VM نیاز دارند.
کانتینر ها را می توان در بین اعضای تیم مختلف به اشتراک گذاشت، که قابلیت حمل بسیار مورد نیاز را در خط لوله توسعه ایجاد میکند. این باعث کاهش خطاهای “کار روی دستگاه من” میشود که تیمهای DevOps را آزار میدهد.