داکر چیست و چگونه کار میکند ؟
با هم بررسی کنیم ببینیم تکنولوژی داکر ( Docker ) که به تازگی سر زبان ها افتاده واقعا چیه ، چطور کار میکنه و با ماشین های مجازی مقایسش کنیم .
اهمیت داکر در دنیای IT
این روزا تکنولوژی داکر ( Docker ) خیلی سر زبون ها افتاده و همه جا دیگه تقریبا داره ازش استفاده میشه . این تکنولوژی دیگه کم کم داره جای ماشین های مجازی رو میگیره نقش بزرگی رو تو دنیای IT به خودش اختصاص میده . در ادامه با ما همراه باشین تا ببینیم اصلا کانتینر چی هستش و به این سوال که آیا داکر همان مجازی سازی هست پاسخ بدیم .
داکر چیست ؟
داکر درواقع یک پلتفرم متن باز یا Open Source هستش که باهاش میشه کانتینر ( Container ) هارو مدیریت کرد . با استفاده از این تکنولوژی توسعه دهندگان میتونن کانتینر های مخصوص خودشون رو بسازن و یا کانتینر های آماده رو دانلود کن و ازشون استفاده کنن . این پلتفرم به سادگی قابل دسترسی و استفاده هستش و منابع زیادی رو از سیستم شما درگیر نمیکنه . همچنین قابلیت سازگاری با سیستم عامل های لینوکس ، ویندوز و .... رو داره .
جالبه بدونین تکنولوژی داکر این روزا از جانب شرکت های توسعه دهنده سرویس های ابری یا کلاد ( Cloud ) خیلی محبوب شده . چون هم پیاده سازی راحتی داره و هم منابع کمتری رو اشغال میکنه . درکل هزینه خیلی کمتر با بازخورد بیشتری رو به نسبت ماشین های مجازی داره . همچنین داکر هم به صورت متن باز یا اوپن سورس در دسترس قرار داره و هم شرکت IBM نسخه تجاری این تکنولوژی رو برای فروش قرار داده .
کانتینر چیست و چگونه کار میکند ؟
کانتینر ها با جداسازی فرایند و قابلیت های مجازی سازی که در هسته لینوکس تعبیه شدن کار میکنن . این قابلیتها - مانند گروههای کنترل (Cgroups) برای تخصیص منابع بین فرآیندها، و فضاهای نام برای محدود کردن دسترسی یا دید فرآیندها به منابع یا مناطق دیگر سیستم - چندین مؤلفه برنامه را قادر میسازد تا منابع یک نمونه واحد از میزبان عامل را به اشتراک بگذارد. سیستم تقریباً به همان روشی که یک هایپروایزر چندین ماشین مجازی (VM) را قادر می سازد تا CPU، حافظه و سایر منابع یک سرور سخت افزاری واحد را به اشتراک بگذارند کار میکنه.
در نتیجه، فناوری کانتینر تمام قابلیتها و مزایای ماشینهای مجازی را ارائه میکند - از جمله جداسازی برنامه، مقیاسپذیری مقرونبهصرفه، و یکبار مصرف بودن - به علاوه مزایای مهم اضافی.
وزن سبک تر: برخلاف ماشین های مجازی، کانتینرها بار کل یک نمونه سیستم عامل و هایپروایزر را حمل نمی کنند. آنها فقط شامل فرآیندهای سیستم عامل و وابستگی های لازم برای اجرای کد هستند. اندازه کانتینرها بر حسب مگابایت (در مقایسه با گیگابایت برای برخی ماشینهای مجازی) اندازهگیری میشوند، از ظرفیت سختافزار بهتر استفاده میکنند و زمان راهاندازی سریعتری دارند.
بهره وری توسعه دهندگان بهبود یافته: برنامه های کانتینری را می توان یک بار نوشت و در هر مکانی اجرا کرد. و در مقایسه با VMها، کانتینرها سریعتر و آسانتر برای استقرار، تهیه و راه اندازی مجدد هستند. آنها را برای استفاده در خطوط لوله یکپارچه سازی و تحویل مداوم (CI/CD) ایده آل عمل می کند و برای تیم های توسعه که از شیوه های Agile و DevOps استفاده می کنند مناسب تر هستند.
چرا باید از داکر استفاده کنیم ؟
Docker به توسعه دهندگان این امکان را می دهد که با استفاده از دستورات ساده به این قابلیت های کانتینری سازی بومی دسترسی داشته باشند و آنها را از طریق یک رابط برنامه نویسی کاربردی (API) به صورت خودکار انجام دهند. در مقایسه با LXC داکر مزیت های زیر رو ارائه میده .
قابلیت حمل کانتینر بهبودیافته و بدون درز: در حالی که کانتینر های LXC اغلب به پیکربندیهای مخصوص ماشین اشاره میکنند، کانتینرهای Docker بدون تغییر در هر دسکتاپ، مرکز داده و محیط ابری اجرا میشوند.
وزن سبکتر و بهروزرسانیهای دانهدارتر: با LXC، چندین فرآیند را میتوان در یک کانتینر واحد ترکیب کرد. این امکان ساخت برنامهای را فراهم میکند که میتواند در حالی که یکی از قسمتهای آن برای بهروزرسانی یا تعمیر حذف شده است، به اجرا ادامه دهد.
ایجاد خودکار کانتینر: داکر می تواند به طور خودکار یک کانتینر بر اساس سورس کد برنامه بسازد.
نسخهسازی کانتینر: Docker میتواند نسخههای یک تصویر کانتینر را ردیابی کند، به نسخههای قبلی برگردد، و ردیابی کند که چه کسی و چگونه یک نسخه را ساخته است. حتی می تواند فقط دلتاها را بین نسخه موجود و نسخه جدید آپلود کند.
استفاده مجدد از کانتینر: کانتینرهای موجود را می توان به عنوان تصاویر پایه استفاده کرد - اساساً مانند الگوهایی برای ساخت کانتینر جدید.
کتابخانههای کانتینر مشترک: توسعهدهندگان میتوانند به یک رجیستری منبع باز که حاوی هزاران کانتینر مشارکتشده توسط کاربر است دسترسی داشته باشند.
مطالب مرتبط