معرفی Docker (داکر)

م

معرفی داکر (Docker)

داکر امکانی را فراهم آورده است که پروسه‌ها و نرم‌افزارها به صورت مجزا در محیط کاملا ایزوله ‌ای بر روی کرنل لینوکس راه‌اندازی شود که به این محیط و بسته‌ی ایزوله، کانتینر (Container) می‌گویند.

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

داکر که در بالا به آن اشاره شد وظیفه مدیریت کانتینرها را به عهده دارد و بیشتر شبیه یک ماشین مجازی عمل میکند، تفاوت داکر با ماشین مجازی در این است که در VM (یا ماشین مجازی) برای اجرای اپلیکیشن و برنامه های مختلف که بخواهیم به صورت ایزوله و مجزا از هم کار کنند باید VM های مختلف ساخته شود که همین موضوع بار پردازشی و هدر رفت منابع سیستمی را روی سرور به همراه دارد.

ولی در Docker روی یک VM خاص که میتواند دارای سیستم عامل ویندوز یا لینوکس باشد، ماژول داکر نصب شده و سپس روی سرویس داکر، کانتینرهای مختلف حاوی برنامه ها و اپلیکیشن های مختلف نصب و اجرا می‌شوند بدون اینکه کانتینرها به هم دسترسی داشته باشند. بدین صورت کانتینرها از هم ایزوله هستند و نیاز ما برای ایجاد چندین VM را مرتفع میسازند.

اگر با مجازی‌سازی آشنا باشید حتماً به خوبی می‌دانید سازوکارهای این کار مانند Hyper-V, KVM و Xen، سخت‌افزار را به صورت مجازی در اختیار مدیران شبکه قرار می‌دهند. در نتیجه این سازوکارها نیازمند منابع سخت‌افزاری قوی هستند. از طرف دیگر کانتینرها از سیستم‌عامل‌های به اشتراک‌گذاری شده بهره می‌گیرند. در نتیجه با روش کارآمدتری طرف هستیم که منابع سیستم را بهینه‌تر استفاده می‌کند. بر خلاف مجازی‌سازی سخت‌افزار، کانتینرها بر بالای یک اینستنس (Instance) لینوکس قرار می‌گیرند و فضایی کوچک و جمع‌و‌جور را برای اپلیکیشن‌های فراهم می‌کنند. به لطف این ویژگی‌ چیزی حدود ۴ تا ۶ برابر اینستنس‌ بیشتری نسبت به فناوری Xen یا KVM VM بر روی یک سخت‌افزار واحد اجرا می‌شود. از طرف دیگر کانتینرها به توسعه‌ دهندگان کمک می‌کنند تا کدهای خود را داخل یک مخزن مشترک قرار دهند. این امر فرآیند کدنویسی را سرعت می‌بخشد و کدها عملکرد بهتری خواهند داشت.

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

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

در این بین اگر با گیت‌هاب آشنا باشید حتماً به خوبی می‌دانید که این بستر شرایط همکاری برای به‌اشتراک گذاشتن کدها میان توسعه‌دهندگان را فراهم کرده است. از این لحاظ می‌توان داکر را به نوعی شبیه به گیت‌هاب دانست چرا که مخزن رسمی گیت‌هاب به شرکت‌های تجاری کمک می‌کند تا نرم‌افزارهای خود را بهینه‌تر کرده و اجرا و مدیریت آن‌ها را ارتقا دهند.

از طرف دیگر کانتینرهای داکر به راحتی در فضای رایانش ابری قرار می‌گیرد و به نوعی طراحی شده که تقریباً تمامی اپلیکشن‌هایی که از متدولوژی دواپس (DevOps) بهره می‌گیرند با داکر تعامل داشته باشند.

داکر محیطی لوکال را برای توسعه فراهم می‌کند که این محیط دقیقاً عمل‌کرد یک سرور  را در اختیار توسعه‌دهندگان قرار می‌دهد. این امر برای روش توسعه CI/CD کاربرد زیادی دارد. از این طریق می‌توان چندین محیط توسعه را از یک هاست مشخص با یک نرم‌افزار، سیستم‌عامل و تنظیمات واحد اجرا کرد.

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

افزودن دیدگاه

12 + 7 =

نوشته‌های تازه

دسته‌ها

برچسب ها