داکر چیست؟

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

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

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

پروژه داکر و اجزای اصلی آن :

پروژه داکر ( پروژه متن بازی که توسط dotCloud در ۱۳ مارس ۲۰۱۴ ارائه شد) شامل چندین بخش اصلی است(برنامه های کاربردی ) و اجزای آن (که این بخش ها را بکار می برند ) عمدتا روی هسته های لینوکسی ساخته می شوند .

بخش های اصلی داکر :

دایمون داکر : برای مدیریت محفظه های داکر(LXC) به کار می رود و روی میزبان اجرا می شود و به درخواست های سرویس ها پاسخ می دهد .

CLI داکر : برای برقراری ارتباط بین دایمون های داکر به کار می رود .

Index تصاویر داکر : یک ریپازیتوری (خصوصی یا عمومی ) برای تصاویر داکر

اجزای اصلی داکر :

– محفظه های داکر :

محفظه هایی شامل هر برنامه کاربردی شما مثل سیستم عامل.

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

تصاویر داکر : تصاویری از محفظه ها یا خود ایمیج های سیستم عامل (اوبونتو ) که کمک می کند محفظه های داکر اجرا شوند (لانچ شوند ).

فایل های داکر : اسکریپت هایی که فرآیند ساخت تصاویر را خودکارسازی می کند .

 

قبل از اینکه وارد بحث تعامل بین اجزا و عناصر داکر شویم اجازه دهید کمی در مورد انچه داکر را می سازد بیشتر صحبت کنیم .

داکر ویژگی های زیر از سیستم عامل را بکار می گیرد تا محفظه سازی کارآمدتری ارائه دهد :

فضاهای نام به عنوان اولین سطح از ایزوله سازی : اطمینان حاصل می کند که یک فرآیند در حال اجرا در یک محفظه ، نمی تواند از بیرون دیده شود یا تغییر کند .

گروه های کنترل ، مولفه اصلی از LXC ، حساب منابع و محدودسازی آنها را برعهده دارند .

فایل سیستم های یکتا که به عنوان یک ساختمان بلوک از ظروف عمل می کنند . لایه ها را ایجاد می کند بنابراین باعث می شوند داکر سبک و سریع عمل کند .

محفظه های لینوکس (LXC)

محفظه های لینوکس به عنوان ترکیبی از ویژگی های مختلف در سطح هسته تعریف می شود ( یعنی چیزهایی که کرنل لینوکس می تواند انجام دهد ) که اجازه مدیریت برنامه های ( ومنابعی که آنها را بکار میبرند ) محفظه شده با محیط شان را می دهد . با استفاده از ویژگی های خاص مانند فضاهای نام ، chroot ها ، cgroup ها و…  LXC برنامه ها را اجرا می کند و کمک می کند تا با مدیریت خودشان از طریق محدودساختن منابع ، اجازه نداشته باشند به خارج از فایل سیستم خودشان دسترسی داشته باشند (دسترسی به فضای نام پدر ) .

داکر با محفظه هایش از LXC استفاده می کند .

محفظه های داکر :

محفظه های داکر چندین ویژگی خاص دارند . آنها اجازه :

قابلیت حمل نرم افزار

جداسازی فرآیندها

مدیریت مصرف منابع

و نیاز به منابع کمتر به نسبت روش های سنتی مجازی سازی

می دهد . و اجازه :

تداخل با دیگر فرآیندها

ایجاد وابستگی

کار نکردن روی یک سیستم دیگر

آسیب پذیری در برابر حمله ها

سوء استفاده از منابع تمام سیستم و … را نمی دهد .

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

از آنجایی که هر چیزی مبتنی بر سیستم فایل است ، گرفتن snapshot ها و انجام roll-back ها ( مفصلا بعدا صحبت خواهیم کرد ) در هر لحظه به راحتی انجام می شود / ( شبیه VCS )

هر محفظه داکر از یک ایمیج داکر شروع می شود که فرم پایه ای برای دیگر برنامه ها و لایه ها است .

Docker Images

تصاویر داکر اساس محفظه های داکر است چراکه هر چیزی از ان آغاز می شود . آنها بسیار شبیه ایمیج های سیستم عامل هستند که برای اجرای برنامه ها روی سرور ها یا کامپیوترها بکار می روند .

گرفتن این ایمیج ها ( مثلا اوبونتو ) اجازه قابلیت حمل را در سراسر سیستم فراهم می کند . همه اجازه هایی که بالا گفتیم توسط ایمیج های داکر برای محفظه ها فراهم می شود .

اگر ایمیج اولیه ای که از سرور می گیرید خود سیستم عامل باشد ، با اضافه کردن هر برنامه بر روی سرور، ایمیج های جدیدی می توانید بگیرید که این تغییرات را شامل شوند .

Docker file

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

داکر چگونه زمان توسعه را کاهش می دهد؟
۱-اگر محصول شما باید با محیط ها یا ابزارهای مختلفی و یا حتی با نسخه های متفاوت سازگار باشه و این محیط ها رو میشه به طور مجزا در داکر ایجاد کرد و اینجا میتونه کمک کنه
۲- اگر محیط دولوپ شما نیازمند شرایط متفاوتی برای مشتریان متفاوت شما داشته باشه باز هم اینجا میشه ازش استفاده کرد
۳- اگر تست جزوی از فرایند دولوپ باشه باز هم میتونه خیلی کمک کننده باشه در استفاده از ابزارها و ایجاد محیط تست
۴- اگر تولید شما پویا باشه و احساس می کنید باید محصول نهاییتون خیلی سریع بتونه با بروز رسانی های ابزارهای جانبی یا محیط های اجراش بروز بشه برای برنچ دولوپ میتونه خیلی مفید باشه
5-گاهی معماری ویا نحوه کار شما به شما این اجازه رو میده که پروژه رو به تیم های کوچکتر و مستقل تری بشکونید که از محصولات همدیگه استفاده میکنن و از کنار هم گذاشتنشون پروژه و محصول نهایی بدست میاد یکی از زمینه های خیلی مفید برای تیم تولید این مورد می باشد
مثلا با کمک این ابزار در معماری ماکرو سرویسها می شه از این ابزار خیلی استفاده کرد و اصلا چرخه تولید و تست و استقرار و ارتباط بین تیم ها بسیار بهبود پیدا میکنه

بر اساس نیاز های خاص دیگه هم این ابزار میتونه مفید باشه البته کمبودها و نقص هاش نباید فراموش بشه .

تفاوت داکر با مجازی سازها مانند  esxi یا solous چیست ؟
اینکه از نظر فنی با هم تفاوت های زیادی دارند رو کنار بذاریم یکی از مهم ترین تفاوت ها نحوه استفاده و منظور استفاده ما از داکر هست
کانتینر های کوچک سبک و سریع با قابلیت تغییر سریعتر و آسانتر و قابلیت استفاده مجدد و برای نیازهایی که تغییراتشون زیادتر هست و انعطاف پذیری بیشتری لازم دارن
اهدافشون یکی نیست که بشه گفت جایگزین هم بشن بلکه در نیازهایی داکر میتونه بهتر جواب بده که به دید کانتینر بهش نگاه بشه ولی جاهایی که این دید رو لازم نداشته باشیم یا محدودیت هاش اجازه نده نمیشه ازش استفاده کرد

درباره badry

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

bigtheme
x

شاید بپسندید

ساخت موتور پالس جت در ابعاد کوچک – قسمت دوم (طراحی موتور)

1-2مقدمه ساخت هر وسیله ای برای اولین بار همراه با مشکلاتی خواهد ...