کلمه “Docker” به چندین مورد اشاره دارد ، از جمله یک پروژه جامعه منبع باز لینوکس .
داکر (Docker) یک پلتفرم متن باز است که بر مبنای سیستم عامل لینوکس راهاندازی شده است. در پاسخ به سوال داکر چیست، خیلی ساده میتوان گفت، ابزاری است که میتواند فرایند ایجاد، پیاده سازی و اجرای برنامهها را با استفاده از Container ها بسیار ساده کند.
ابزارهایی از پروژه منبع باز ؛ Docker Inc. ، شرکتی که در درجه اول از آن پروژه پشتیبانی می کند. و ابزارهایی که شرکت به طور رسمی از آنها پشتیبانی می کند. این واقعیت که فناوری ها و شرکت یک نام مشترک دارند می تواند گیج کننده باشد.
در اینجا یک توضیح مختصر وجود دارد:
- نرم افزار فناوری اطلاعات “Docker” است که ایجاد و استفاده ازکانتینرلینوکس را امکان پذیر می کند.
- جامعه منبع باز داکر برای بهبود این فناوری ها به نفع همه کاربران تلاش می کند.
- این شرکت ، Docker Inc. ، بر اساس کار جامعه Docker کار می کند ، امنیت آن را افزایش می دهد و این پیشرفت ها را به جامعه بزرگ باز می گرداند. سپس از فناوری های بهبود یافته و سخت شده برای مشتریان سازمانی پشتیبانی می کند.
حال به تعریف کانتینر میپردازیم .
کانتینر (Container) چیست؟
نگهداری برنامهها در محیطی ایزوله و به صورت مستقل، از اهداف سیستمهای جدید توسعه نرم افزار است. به این ترتیب فعالیت آنها بر روی یکدیگر تاثیری نداشته و کاملا مستقل از هم کار میکنند. یکی از راههای پیاده کردن این تکنولوژی استفاده از ماشین مجازی (Virtual Machine) است که برنامهها را روی یک سخت افزار اما جدا از هم نگهداری میکند. در این حالت component ها با هم تداخل نداشته و رقابت برای استفاده از منابع سخت افزاری به حداقل میرسد.
اما کانتینر چیست؟ در مقابل ماشینهای مجازی، کانتینرها( Container ) قرار دارند، آنها میتوانند جایگزین مناسبی برای ماشینهای مجازی باشند. کانتینرها محیطهای اجرایی را جدا کرده و هسته سیستم عامل را به اشتراک میگذارد. کانتینرها نسبت به ماشینهای مجازی از منابع کمتری استفاده میکنند و همچنین خیلی سریع قابلیت اجرا پیدا میکنند.
(Container) کانتینر داکرDocker چیست؟
هر چند مفهوم container از مدتها قبل در حوزه IT مطرح بوده، اما معرفی و ارائه داکر به عنوان یک پروژه متن باز باعث شد استفاده از container ها دوباره فراگیر شود.
کانتینر (Container) این امکان را برای توسعه دهندگان فراهم میکند تا بسته کاملی از برنامههای خود همراه تمامی بخشهای مورد نیاز آن ایجاد کرده و آن را در قالب یک بسته واحد ارسال کنند.
با وجود کانتینرها، توسعه دهندگان میتوانند اطمینان داشته باشند که برنامه داکر در هر ماشین، با سیستم عامل لینوکس بدون توجه به تنظیمات سفارشی قابل اجرا و استفاده است. ماشین جدید میتواند تنظیماتی متفاوت با ماشینی که برنامه روی آن طراحی شده، داشته باشد
داکر چگونه کار می کند؟
فناوری Docker از هسته لینوکس و ویژگی های هسته ، مانند Cgroups و namespace ، برای جداسازی فرآیندها استفاده می کند تا بتوانند به طور مستقل اجرا شوند.- توانایی اجرای چندین فرآیند و برنامه به طور جداگانه از یکدیگر برای استفاده بهتر از زیرساخت های شما در عین حفظ امنیت سیستم های جداگانه.
بنابراین ابزارهای Container ، از جمله Docker ، یک مدل استقرار مبتنی بر تصویر را ارائه می دهند. این امر به اشتراک گذاشتن یک برنامه یا مجموعه ای از خدمات را با همه وابستگی های آنها در محیط های مختلف آسان می کند. Docker همچنین استقرار برنامه (یا مجموعه ای از فرآیندهای تشکیل دهنده یک برنامه) را در این محیط کانینر به صورت خودکار انجام می دهد.
این ابزارها که بر روی محفظه های لینوکس ساخته شده اند-چیزی که Docker را کاربر پسند و منحصر به فرد می کند-به کاربران امکان دسترسی بی سابقه به برنامه ها ، قابلیت استقرار سریع و کنترل نسخه ها و توزیع نسخه را می دهد.
دلایل محبوبیت داکر چیست؟
اگر با مجازیسازی آشنا باشید حتماً به خوبی میدانید سازوکارهای این کار مانند Hyper-V, KVM و Xen، سختافزار را به صورت مجازی در اختیار مدیران شبکه قرار میدهند. در نتیجه این سازوکارها نیازمند منابع سختافزاری قوی هستند.
از طرف دیگر کانتینرها از سیستمعاملهای به اشتراکگذاری شده بهره میگیرند. در نتیجه با روش کارآمدتری طرف هستیم که منابع سیستم را بهینهتر استفاده میکند. بر خلاف مجازیسازی سختافزار، کانتینرها بر بالای یک(Instance) لینوکس قرار میگیرند و فضایی کوچک و جمعوجور را برای اپلیکیشنهای فراهم میکنند.
به لطف این ویژگی چیزی حدود ۴ تا ۶ برابر اینستنس بیشتری نسبت به فناوری Xen یا KVM VM بر روی یک سختافزار واحد اجرا میشود. از طرف دیگر کانتینرها به توسعه دهندگان کمک میکنند تا کدهای خود را داخل یک مخزن مشترک قرار دهند. این امر فرآیند کدنویسی را سرعت میبخشد و کدها عملکرد بهتری خواهند داشت.
داکر توسعهدهندگان را قادر میسازد تا اپلیکیشنهای خود را راحت و سریع با حجم کمتری به صورت قابل حمل و پرتابل در یک کانتینر قرار دهند. این اپلیکیشنهابه صورت مجازی از هر جایی قابل اجرا هستند.
جمع بندی
داکر یک ابزارOpen Source منبع باز برای طراحی و ساخت برنامهها به کمک Container است. Container به برنامه نویس کمک میکند که پروژه خود را با تمام بخش هایی که دارد (مثل کتابخانه ها، وابستگیها و غیره) به صورت یک پکیج دربیاورد. به لطف این تکنیک، برنامه نویس خیالش راحت است که برنامه او میتواند در سیستمهای دیگر بدون نیاز به تنظیمات خاص یا ابزارهای جانبی اجرا شود. داکر را شبیه به ماشین مجازی در نظر بگیرید، با این تفاوت که بازدهی بسیار بالاتری دارد.