داکر Docker یک پلت فرم منبع باز برای ساخت، استقرار و مدیریت برنامه های کاربردی کانتینری است. درباره container ها ، نحوه مقایسه آنها با VMها و اینکه چرا Docker به طور گسترده مورد استفاده قرار گرفته و می گیرد، در این مقاله می آموزید.
داکر چیست؟
داکر یک پلتفرم کانتینرسازی منبع باز است. این برنامه توسعه دهندگان را قادر می سازد برنامه ها را در کانتینرها بسته بندی کنند – اجزای اجرایی استاندارد شده که کد منبع برنامه را با کتابخانه های سیستم عامل (OS) و وابستگی های مورد نیاز برای اجرای آن کد در هر محیطی ترکیب می کنند. کانتینرها، تحویل برنامه های کاربردی توزیع شده را ساده می کنند و با تغییر سازمان ها به سمت توسعه بومی ابری و محیط های چند ابری ترکیبی محبوبیت فزاینده ای پیدا کرده اند.
توسعه دهندگان می توانند کانتینرهایی را بدون Docker ایجاد کنند، اما این پلتفرم ساخت، استقرار و مدیریت کانتینرها را آسان تر، ساده تر و ایمن تر می کند.
کانتینرها چگونه کار می کنند و چرا اینقدر محبوب هستند
کانتینرها با جداسازی فرآیند و قابلیت های مجازی سازی که در هسته لینوکس تعبیه شده است امکان پذیر می شوند. این قابلیتها چندین مؤلفه برنامه را قادر میسازد تا منابع یک نمونه واحد از میزبان عامل را به اشتراک بگذارد. سیستم تقریباً به همان روشی که هایپروایزر چندین ماشین مجازی (VM) را قادر می سازد تا CPU، حافظه و سایر منابع یک سرور سخت افزاری واحد را به اشتراک بگذارند.
در نتیجه، فناوری کانتینر تمام عملکردها و مزایای ماشین های مجازی را ارائه می دهد – از جمله جداسازی برنامه، مقیاس پذیری مقرون به صرفه و یکبار مصرف
مزایای مهم container نسبت به ماشین مجازی
- وزن سبک تر: برخلاف ماشین های مجازی، کانتینرها بار کل یک نمونه سیستم عامل و هایپروایزر را حمل نمی کنند. آنها فقط شامل فرآیندهای سیستم عامل و وابستگی های لازم برای اجرای کد هستند. اندازه کانتینرها بر حسب مگابایت (در مقایسه با گیگابایت برای برخی ماشینهای مجازی) اندازهگیری میشوند، از ظرفیت سختافزار بهتر استفاده میکنند و زمان راهاندازی سریعتری دارند.
- بهره وری بیشتر از منابع: با کانتینرها، می توانید چندین برابر تعداد کپی های یک برنامه را روی همان سخت افزار اجرا کنید .این می تواند هزینه های ابری شما را کاهش دهد.
- بهره وری توسعه دهندگان بهبود یافته: در مقایسه با VM ها، کانتینرها سریعتر و آسانتر برای استقرار، تهیه و راه اندازی مجدد و برای تیم های توسعه که از شیوه های Agile و DevOps استفاده می کنند مناسب تر هستند.
شرکتهایی که از کانتینر استفاده میکنند، مزایای دیگری از جمله بهبود کیفیت برنامه، پاسخ سریعتر به تغییرات بازار و موارد دیگر را گزارش میدهند.
چرا از Docker استفاده کنیم؟
Docker امروزه آنقدر محبوب است که “Docker” و “container” به جای یکدیگر استفاده می شوند. اما اولین فناوریهای مرتبط با کانتینر برای سالها – حتی دههها قبل از انتشار عمومی Docker در سال 2013 در دسترس بودند.
مهمتر از همه، در سال 2008، LinuXContainers (LXC) در هسته لینوکس پیادهسازی شد و مجازیسازی را برای یک نمونه از لینوکس به طور کامل فعال کرد. در حالی که امروزه از LXC هنوز استفاده می شود، فناوری های جدیدتری با استفاده از هسته لینوکس در دسترس هستند. اوبونتو، یک سیستم عامل لینوکس مدرن و منبع باز، این قابلیت را نیز فراهم می کند.
داکر قابلیتهای کانتینریسازی بومی لینوکس را با فناوریهایی افزایش داد که این امکان را فراهم میکنند:
قابلیت حمل و نقل بهبودیافته و بدون درز: در حالی که کانتینرهای LXC اغلب به پیکربندیهای مخصوص ماشین اشاره میکنند، کانتینرهای Docker بدون تغییر در هر دسکتاپ، مرکز داده و محیط ابری اجرا میشوند.
وزن سبکتر و بهروزرسانیهای دانهدارتر: با LXC، چندین فرآیند را میتوان در یک ظرف واحد ترکیب کرد. با کانتینرهای Docker، تنها یک فرآیند می تواند در هر کانتینر اجرا شود. این قابلیت ساخت برنامهای را فراهم میکند که میتواند در حالی که یکی از قسمتهای آن برای بهروزرسانی یا تعمیر حذف شده است، به اجرا ادامه دهد.
ایجاد خودکار کانتینر: داکر می تواند به طور خودکار یک کانتینر بر اساس کد منبع برنامه بسازد.
نسخهسازی کانتینر: Docker میتواند نسخههای یک تصویر کانتینر را ردیابی کند، به نسخههای قبلی برگردد، و ردیابی کند که چه کسی و چگونه یک نسخه را ساخته است. حتی می تواند فقط دلتاها را بین نسخه موجود و نسخه جدید آپلود کند.
استفاده مجدد از کانتینر: کانتینرهای موجود را می توان به عنوان تصاویر پایه استفاده کرد – اساساً مانند الگوهایی برای ساخت کانتینرهای جدید.
کتابخانههای کانتینر مشترک: توسعهدهندگان میتوانند به یک رجیستری منبع باز که حاوی هزاران کانتینر مشارکتشده توسط کاربر است دسترسی داشته باشند.
امروزه کانتینرسازی داکر با سرور مایکروسافت ویندوز نیز کار می کند. و اکثر ارائه دهندگان ابر خدمات خاصی را برای کمک به توسعه دهندگان در ساخت، ارسال و اجرای برنامه های کاربردی با داکر ارائه می دهند.
به این دلایل، پذیرش Docker به سرعت حال افزایش است. Docker Inc. گزارش میدهد که هر ماه 11 میلیون توسعهدهنده و 13 میلیارد دانلود تصویر کانتینر را گزارش میدهد.