داکر (docker) چیست ؟ آشنایی با داکر

آشنایی با داکر

داکر، یک پلتفرم متن‌باز و از نوع مجازی سازی، در سطح سیستم عامل است. با استفاده از داکر می‌توانید، اپلیکیشن مورد نیاز خود را، در یک محیط ایزوله، به نام کانتینر (Container)، اجرا نمایید. داکر، هر آنچه که یک اپلیکیشن، برای اجرا در یک کانتینر، نیاز دارد مانند کتابخانه‌ها و برنامه‌های دیگر مورد نیاز را فراهم می‌سازد. در این حالت، اپلیکیشن، به فایل یا برنامه‌های خارج از کانتینر، احتیاجی ندارد. چندین کانتینر، به طور همزمان، می‌توانند بر روی یک سیستم عامل میزبان، اجرا گردند. کانتینرها، نسبت به هم ایزوله هستند. در صورت لزوم، کانتینرها، فقط از طریق مسیرهای ارتباطی مشخص، می‌توانند بایکدیگر، ارتباط داشته باشند. در داکر، همه‌ی کانتینرها، بر روی هسته‌ی یک سیستم عامل، اجرا می‌گردند. این روش، باعث صرفه‌جویی در استفاده از منابع سخت‌افزاری و سرعت و کارایی زیادی خواهد گردید. شعار داکر این است: برنامه‌ی خود را بسازید و بدون هیچ تغییری، آن را بر روی هر پلتفرمی، اجرا نمایید(Build and Ship any Application Anywhere). در صورتی‌که تمایل دارید در مورد داکر (Docker)، آشنایی بیشتری پیدا نمایید، با ما همراه باشید.

مزایای استفاده از داکر

  • داکر هیچ سیستم عامل جدیدی را ایجاد نمی‌کند. داکر تنها از سیستم عامل میزبان استفاده می‌نماید. به همین دلیل، اپلیکیشن‌های واقع در کانتینرها مستقیما با کرنل سیستم عامل میزبان، ارتباط خواهند داشت. ارتباط مستقیم با کرنل میزبان، سرعت و کارایی را، به میزان زیادی افزایش خواهد داد.
  • نصب و راه‌اندازی، هر کانتینر، بسیار سریع و بدون راه‌اندازی مجدد سیستم است.
  • داکر، برای توسعه‌دهندگان، محیط مناسبی را در شرایط ایزوله، برای تست و تغییرات برنامه‌ها، بدون نگرانی از تاثیر بر برنامه‌های دیگر، فراهم می‌سازد.

آشنایی با مفهوم کانتینر(Container) در داکر

عملکرد کانتینرها در داکر، شبیه ماشین‌های مجازی است. اما برخلاف ماشین‌های مجازی، کانتینرها، فاقد سیستم عامل و هسته‌ی مستقل هستند. در اصل، داکر، هیچ سیستم عامل جدیدی نمی‌سازد. بلکه تمام فایل‌ها و نرم‌افزارهای ضروری، برای اجرای یک اپلیکیشن را به صورت یک بسته‌ی نرم‌افزاری ایزوله، به نام کانتینر، ارائه می‌دهد. همان‌طور که گفته‌شد، کانتینرها، نسبت به هم مستقل هستند. کانتینرها، نسبت به ماشین‌های مجازی، از منابع سخت‌افزاری کمتری، استفاده می‌کنند.

تفاوت کانتینرها با ماشین‌های مجازی(VM)

در ادامه‌ی آشنایی با داکر، به تفاوت داکر با ماشین مجازی می‌پردازیم. در مجازی سازی سرورها، منابع سخت‌افزاری یک سرور فیزیکی، بین چندین ماشین مجازی به اشتراک گذاشته می‌شود. هر ماشین مجازی(Virtual Machine)، دارای یک سیستم‌عامل مخصوص به خود، مثل ویندوز، لینوکس و یا سیستم عامل‌های دیگر، می‌باشد. مثلا در صورتی که، ده عدد VM داشته باشیم و همه‌ی VMها، از سیستم عامل لینوکس استفاده کرده باشند، ما، ده سیستم عامل مجزا خواهیم داشت. هر سیستم عامل نیز، هسته و یا کرنل مخصوص به خود را نیز دارد.

علاوه بر هسته‌ی سیستم عامل هر ماشین مجازی، یک هسته دیگر نیز وجود دارد. هایپروایزر(Hypervisor)، هسته‌ی سیستم عامل مجازی سازی است. هایپروایزر، موقع بوت شدن سیستم در حافظه‌ی اصلی قرار گرفته و مدیریت منابع، برای ماشین‌های مجازی را بر عهده دارد.

در داکر، با حذف هایپروایزر، سیستم عامل میزبان، با یک هسته یا کرنل بوت می‌شود. در مثال بالا، به جای ده سیستم عامل متمایز، سیستم عامل میزبان، به طور مشترک، برای تمام کانتینرها، به‌کار می‌رود. در این‌حالت، اپلیکیشن‌ها مستقیما با کرنل سیستم عامل میزبان، در ارتباط هستند. با این روش کارایی و سرعت اپلیکیشن‌ها، بسیار زیاد خواهد شد. در شکل زیر، مقایسه‌ی بین اجرای اپلیکیشن‌ها در داکر و ماشین‌های مجازی، نشان داده شده است. همان‌طور که مشاهده می‌شود، در داکر با حذف هایپروایزر و همچنین حذف سیستم عامل‌های مجزا، کارایی سیستم را به مقدار زیادی افزایش می‌دهد.

کانتینرها در داکر

داکر یا ماشین‌های مجازی

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

دیدگاهتان را بنویسید