داکر یا docker چیست ؟
اگر بخواهیم تعریف دقیق و ملموسی از داکر ارائه دهیم می توان گفت داکر کاری مشابه ماشین های مجازی انجام می دهد که البته تفاوت هایی با هم دارند. داکر این امکان را برای کاربر ایجاد می کند که بتواند پروسه ها و نرم افزارها را به صورت مجزا در محیط کاملا ایزوله ای بر روی کرنل لینوکس راه اندازی کند که به این محیط بسته و ایزوله کانتینر (Container) گفته می شود.
کاربرد داکر
اگر دستی در کار برنامه نویسی دارید حتما واژه ی کانتینر به گوشتان خورده است.کانتینر امکانیست که برنامه نویسان و توسعه دهندگان توسط آن می توانند تمام ماژول ها و کامپوننت های وابسته آن ( مانند کتابخانه ها ، توابع و … ) یکی کرده و به صورت یک پکیج درآورده تا بدون فراهم کردن سیستم های مختلف برای تست آن را برای اجرای بدون مشکل در آن ها آماده کنند و بدون نگرانی از تنظیمات و وابستگی های یک Application خاص در پلتفرم های دیگر، آن برنامه در هر محیطی اجرا شود.
تفاوت داکر با VM
همانطور که در مقدمه ی مقاله اشاره شد، داکر همانند یک ماشین مجازی وظیفه ی مدیریت کانتینرها را بر عهده دارد. شاید برای شما هم این سوال پیش بیاید که چرا از ماشین مجازی چون vmware استفاده نمی کنیم؟ درواقع تفاوت داکر با سایر ماشین های مجازی در این است که برای اجرای هر اپلیکیشن یا برنامه که می خواهیم به صورت ایزوله و جدا از اهم کار کنند باید یک ماشین مجازی ایجاد شود که این کار می تواند بار پردازشی را بالا برده و باعث هدر رفتن منابع سیستمی سرور شود.
اما ویژگی منحصر به فرد داکر با سایر ماشین های مجازی در این است که برنامه ی داکر روی یک VM که دارای سیستم عامل ویندوز یا لینوکس است نصب می شود سپس روی سرویس داکر، کانتینرهای مختلف حاوی برنامه ها و اپلیکیشن های مختلف نصب و اجرا میشوند بدون اینکه کانتینرها به هم دسترسی داشته باشند.همین مورد باعث می شود که ما نیاز به چندین VM نداشته باشیم و از این رو بار پردازشی سرور نیز کاهش می یابد.
در ماشین های مجازی معمولا منابع سخت افزاری بین محیط های مختلف تقسیم می شود و این مورد باعث کاهش بازدهی سیستم می شود و اما داکر به جای تقسیم منابع سخت افزاری بین محیط های مختلف روی سیستم عمل نصب می شود که دارای محیط های ایزوله همان کانتینر ها می باشد که روی داکر اجرا می شوند و از طریق ایمیج های آماده ایجاد شده و درخواست ها از طریق سیستم عامل به کرنل فرستاده می شود و بدین صورت بار پردازشی تا حد امکان پایین آمده و مشکلات سیستمی را به همراه ندارد.
مزیت های داکر
با توضیحاتی که در بالا به ان اشاره شد می توان به مزیت های منحصر به فرد آن پی برد.
اولین مزیت مهم این است که برای هر محیط ایزوله یک ماشین مجازی نصب نمی شود و داکر این امکان را ایجاد می کند که چندین محیط ایزوله در آن ایجاد کنیم.
مزیت دوم در نصب ماشین های مجازی از همان ابتدا منابع سخت افزاری تقسیم می شود و نمی توان از محدوده ی یک ماشین مجازی که بار کاری کمتری دارد برای ماشین های مجازی دیگر استفاده کنیم ولی داکر اینطور نیست و به میزان مورد نیاز از منابع استفاده می کند.
مزیت سوم وقتی یک سرویسی در داکر تهیه و آماده می کنیم می توانیم Image ساخته شده را ذخیره و در سیستم های دلخواه راه اندازی کنیم.
با این سه مزیتی که به آن اشاره شده می توان به میزان کاربردی بودن داکر به سایر ماشین های مجازی پی برد. اگر شما هم برنامه نویسی می کنید توصیه می کنم از داکر استفاده کنید.