
امروزه در تکنولوژی روز دنیای شبکه و اینترنت بحث داکر به یکی از داغترین مباحث تبدیل شده و نیاز به استفاده آن از قدیم بیشتر شده است. بر همین اساس در این مطلب از سری مطالب دانشنامه آذرآنلاین با معرفی و تاریخچه داکر در خدمت شما کاربران گرامی خواهیم بود تا بیش از پیش با آن آشنا شوید و در مطالب بعد بتوانیم به موضوع نصب و استفاده از بپردازیم.
با مطلب معرفی و تاریخچه داکر همراه ما باشید.
معرفی و تاریخچه داکر
تاریخچه داکر
حدوداً پنج سال پیش سالامان هایکز ، سازکار و ایدهای با نام داکر را مطرح و راهاندازی کرد و هدف کار آن را تعامل راحتتر با کانتینرها معرفی کرد. این ایده از همان ابتدا نظر کارشناسان اهل فن را به خود جلب کرد و از ابتدای معرفی در راه موفقیت قرار گرفت. داکر در سال 2014 نسخه 1 را منتشر کرد و تمامی ایدهها و اهداف ارائه شده از سمت سالامان را اجرایی کرد و همین امر بستری را برای موفقیت آن ایجاد نمود.
این ایده و عملکرد داکر باعث شد بسیاری از شرکتها ابزارها و نرمافزارهای خود را که تحت سرور اجرایی میشد ، بر بستر داکر معرفی کنند و دیگر با ماشینهای مجازی کاری نداشته باشند.
نکته جالب در استفاده از داکر ، استفاده چندین بانک و بنگاه مالی بزرگ بود که خیلی سریع و تنها با معرفی نسخه 1 داکر به سمت این فناوری آمدند و اعتماد آنها نشان از امنیت کافی و مناسب داکر داشت.
امروزه داکر و Moby که به عنوان مجموعه بالاسری داکر شناخته میشود ، علاقهمندان زیادی را به سمت خود جذب کرده و بنا به گزارش این شرکت در حدود 3.5 میلیارد اپلیکیشن از طریق فناوری داکر ارائه و دانلود شده است.
همین امر باعث شد تا غولهای فناوری اطلاعات مانند کنونیکال ، ردهت ، اوراکل و حتی مایکروسافت در نسخههای جدید سیستم عاملهایشان از این قابلیت پشتیبانی کرده و بر روی بستر ابری خود از آن بهره ببرند.
شاید در ابتدا پس از خواندن دو خط آخر استفاده از داکر در سیستم عاملهای لینوکسی امری عادی بنظر برسد اما استفاده مایکروسافت در ویندوز از این فناوری حکایت از خاص و با کیفیت بودن داکر دارد که در مطلب معرفی ویندوز سرور 2019 و معرفی ویندوز سرور 2016 به آنها نیز پرداخته شد.
داکر چیست؟
پس از این همه توضیح در مورد تاریخچه و نحوه پیدایش داکر قصد داریم در ادامه به توضیح و معرفی آن بپردازیم تا از این همه تعریف و تمجیدی که در تاریخچه شد ، متوجه روند و اصل فرآیند داکر آشنا شوید.
داکر امکانی را بر روی سیستم عامل فراهم میسازد تا پروسهها و نرمافزارها به صورت مجزا و در محیطی ایزوله بر روی کرنل لینوکس راهاندازی شوند که به هر یک از این محیطها یک بسته ایزوله یا کانتینر (Container) میگویند.
کانتینر امکانی را برای برنامهنویسان و توسعه دهندگان اپلیکیشن فراهم میسازد تا یک برنامه را با تمام ماژولها و کامپوننتهای وابسته آن مانند توابع ، کتابخانهها و ... یکی کرده و به صورت یک پکیج جمعآوری سازد تا برنامه بدون هیچ مشکلی در تمامی پلتفرمها و سیستمهای مختلف بدون مشکل اجرا شود.
در حقیقت بدون نگرانی از تنظیمات وابسته یک اپلیکیشن خاص به پلتفرم ، این پکیج همانند یک برنامه در محیطی مجزا اجرا خواهد شد.
حال داکر که توضیحاتی نسبت به آن در بالا ذکر شد ، وظیفه مدیریت کانتینر را بر عهده دارد و بیشتر شبیه یک ماشین مجازی عمل میکند اما با این تفاوت که در ماشینهای مجازی باید برای هر سرویس و یا پروسه ، یک ماشین مجازی ایجاد کرد که در نهایت منجر به هدر رفتن فضا ، بار پردازشی و سایر منابع خواهد شد.
اما Docker روی یک ماشین مجازی خاص که میتواند دارای سیستم عامل ویندوز یا لینوکس باشد ، نصب خواهد شد و سپس کانتینرهای مختلف حاوی برنامهها و اپلیکیشنها بر روی آن در دسترس قرار خواهند گرفت. بدین شکل کانتینر به صورت ایزوله شروع به کار خواهند کرد و در عین حال نیازی به نصب و تنظیم چندین ماشینمجازی نخواهد بود.
دلایل محبوبیت داکر
اگر با تکنولوژی مجازیسازی آشنایی داشته باشید و یا با سیستمهای Xen ، KVM ، Vmware و یا Hyper-V کار کرده باشید حتماً متوجه آن شدهاید که هر ماشین مجازی نیازمند برخی منابع سختافزاری است و همین امر باعث میشود که شما نیاز زیادی به منابع سختافزاری و همچنین سرورهای قدرتمند داشته باشید.
از طرف دیگر کانتینرها با سیستم عاملهای به اشتراک گذاشته شده کار میکنند و در نتیجه با روش کارآمدتری طرف خواهیم بود چون منابع به صورت بهینه و بر اساس هر کانتینر تنظیم و استفاده میشود.
برخلاف سیستم مجازیسازی سختافزاری ، هر کانتینر داکر بر بالای یک Instance لینوکس قرار گرفته و فضای کوچک و بهینهای را برای اپلیکیشن فراهم میسازد.
به لطف این قابلیت چیزی در حدود 4 تا 6 برابر Instance بیشتری نسبت به فناوریهای Xen و KVM VM بر روی یک سختافزار فراهم خواهد شد و از طرق مختلف کانتینرها به توسعه دهندگان این اجازه را خواهد داد تا از کدها و منابع نرمافزاری در یک مخزن مشترک استفاده نمایند که در نتیجه فرآیند کدنویسی را سرعت بخشیده و کدها عملکرد مناسب و بهتری را نیز خواهند داشت.
در مجموع میتوان گفت با مهمترین قابلیت داکر ، توسعه دهندگان قادر خواهند بود اپلیکیشنهای خود را سریعتر ، راحتتر و یا حجم کمتری به صورت قابل حمل در یک کانتینر قرار داده و آن را به صورت مجازی از هر نقطه اجرا نمایند.
این فرآیند در مجموع از طریق مجازیسازی کدها در داخل کانتینر انجام شده و کاملاً مشخص است که چنین کاری باعث بهینهسازی و بروزرسانی هر چه سادهتر برنامهها خواهد شد. حال شاید با این توضیحات متوجه شدید که با توجه به اینکه در عرصه فناوری شرکتها به دنبال راههای بیشتری برای ساخت اپلیکیشنهای پرتابل هستند و چرا داکر هر روز طرفداران بیشتری پیدا میکند.
برای درک بهتر از روند عملکرد یک داکر میتوان گفت که امروزه همه با گیتهاب آشنا هستند و همه به خوبی میدانند که این بستر برای شرایط همکاری برای به اشتراکگذاری کدها میان توسعه دهندگان را فراهم میسازد. از این جهت میتوان کمی داکر را در بستری کوچکتر در مقیاس با گیتهاب مقایسه تصور کرد.
از طرف دیگر کانتینرهای داکر به راحتی در فضای رایانش ابری قرار میگیرد و به نوعی طراحی شده که تقریباً تمامی اپلیکشنهایی که از متدولوژی دواپس (DevOps) بهره میگیرند با داکر تعامل داشته باشند.
داکر محیطی لوکال را برای توسعه فراهم میکند که این محیط دقیقاً عملکرد یک سرور را در اختیار توسعهدهندگان قرار میدهد. این امر برای روش توسعه CI/CD کاربرد زیادی دارد. از این طریق میتوان چندین محیط توسعه را از یک هاست مشخص با یک نرمافزار، سیستمعامل و تنظیمات واحد اجرا کرد.
از طرف دیگر پروژه را میتوان روی چند سرور جدید و مختلف آزمایش کرد و تمامی اعضای گروه بر روی یک پروژه واحد با تنظیمات همانند قادر به همکاری هستند. این کار توسعهدهندگان را قادر میسازد تا نسخههای جدید برنامه خود را به سرعت آزمایش کرده و از عملکرد صحیح آن اطمینان خاطر حاصل کنند.
تاریخچه پیدایش کانتینرها و شکلگیری داکر
اگر از قدیمیهای دنیای کامپیوتر باشید به احتمال زیاد FreeBSD Jail که در اواخر سال ۲۰۰۰ استفاده میشد را به خاطر دارید. جالب است بدانید سابقه کانتینرها به همان دوران باز میگردد. اوراکل نیز مفهوم خاص خودش را از کانتینرها داشت که با نام Zones شناخته میشد.
با این حساب میتوان گفت توسعهدهندگان احتمال دارد تاکنون حتی بدون اینکه بدانند از کانتینرها کمک گرفته باشند. برای نمونه هر زمان که از یکی از سرویسهای گوگل مانند جیمیل و گوگل داکس استفاده میکنید عملاً یک کانتینر جدید برای شما ایجاد شده است.
داکر روی LXC سوار میشود و همانند سایر کانتینرها به فایلهای سیستمی، فضای ذخیرهسازی، پردازنده، رم و دیگر منابع به صورت اختصاصی دسترسی دارد. به این ترتیب میتوان تفاوت اصلی میان کانتینرها و ماشینهای مجازی (VM)، را در این دانست که وقتی هایپروایزر (Hypervisor) به صورت انتزاعی تمام یک سیستم را ایجاد میکند، کانتینرها تنها به صورت انتزاعی کرنل سیستمعامل را ایجاد میکنند.
این امر میلیونها دلار صرفهجویی را برای شرکتهای ارائهدهنده خدمات رایانشابری به دنبال دارد و به همین دلیل است که غولهای فناوری به سرعت به سمت داکر پیش رفتهاند.
استانداردسازی کانتینرها
داکر ارمغانهای جدیدی در اختیار شرکتها قرار داد که پیش از این شاهد آنها نبودیم. در این زمینه میتوان به سادهسازی اجرا و استفاده آن اشاره کرد. از طرف دیگر داکر با کانتینرهای دیگری از کنونیکال، گوگل و ردهت همکاری دارد و در نتیجه استانداردسازی خوبی را برای کانتینرها شاهد هستیم.
داکر همچنان به استاندارد سازی ادامه داده و از آنجایی که عملاً این روزها نمیتوان رقیبی برای داکر متصور شد میتوان آن را روی هر سیستمعاملی اجرا کرد.
نظارت و مدیریت کانتینرها
تمامی زیرساختهای IT نیازمند مدیریت و نظارت هستند و در همین راستا کانتینرها نیز باید مانیتور شوند و در حالت کنترلشدهای قرار بگیرند. درغیر این صورت مشخص نخواهد شد سرور چه برنامههایی را اجرا میکند.
خوشبختانه از برنامههای دواپس میتوان برای مانیتور کانتینرهای داکر کمک گرفت، اما به این نکته نیز باید اشاره کرد که این برنامهها برای کانتینرها بهینه نشدهاند. اینجاست که باید سراغ ابزارهای مدیریت و نظارت رایانش ابری را بگیرید.
ابزارهایی مانند Docker Swarm, Kubernetes و Mesosphere در این زمینه گزینههای خوبی بهنظر میرسند و تجربه نشان داده است در بین این ابزارها Kubernetes محبوبیت بیشتری پیدا کرده است.
در اینجا به پایان معرفی و تاریخچه داکر رسیدهایم و امیدواریم این مطلب برای شما مفید واقع شده باشد.
در مطالب آتی با توضیحات و آموزش بیشتری از داکر در خدمت شما خواهیم بود.
کاربر گرامی شما میتوانید سؤالات مربوط به این آموزش را در بخش کامنتها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید و یا برای رفع مشکلات دیگر در زمینه آموزشهای آذرآنلاین به بخش Community مراجعه کرده و مشکل خود را در آن مطرح نمایید تا در اسرع وقت کاربران دیگر و کارشناسان به سؤالات شما پاسخ دهند.
نظرات کاربران