(Docker) داکر چیست و چه کاربردهایی دارد ؟

بخش : مقالات دسته بندی : برنامه نویسی مدت زمان مطالعه : 4 دقیقه تعداد بازدید : 31 تاریخ : یک هفته پیش



docker



داکر (docker) چیست و چه کاربردهایی دارد ؟ 


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


Container چیست ؟


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


Docker چیست ؟ 


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


نحوه کار Docker به چه صورت است ؟ 


داکر در واقع یک مجازی ساز قهار است ، اما نحوه کار آن مشابه ماشین مجازی نیست !!. به چه صورت ؟ به این شکل که داکر به شما کمک میکند تا یک محیط را به چند بخش تقسیم کرده و در هر بخش یک برنامه مجزا را اجرا کنید . در ماشین های مجازی ما با استفاده از Hypervisor عملیات شبیه سازی را انجام میدهیم ، اما در داکر این لایه حذف شده است و ما بصورت مستقیم با هسته سیستم عامل سروکار داریم . که این خود باعث بازدهی بیشتر سیستم میشود . بصورت ساده تر براتون میگم ، ما به جای اینکه چند سیستم عامل را داخل یک ماشین مجازی ، شبیه سازی کنیم یک بار داکر را نصب میکنیم . که فرآیند آن مانند نصب یک نرم افزار عادی است . بعد از آن داکر محیط هایی جدا ازهم ایجاد میکند که نام آنها Container است و هر Container  میتواند خود شامل بسته های نرم افزاری مختلفی باشد . 


Dockerfile 


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


Docker image 


روال کار به این صورت است که وقتی که کار نوشتن Dockerfile به اتمام رسید . یه ویژگی بنام Docker Build را فراخوانی میکنیم که این وظیفه را برعهده دارد که یک image بر اساس محتویات Dockerfile  شما بسازد . Dockerfile  یکسری دستورالعمل برای ساختن یک image است ، در حالی که Docker Image یک فایل قابل حمل است که شامل گروهی از دستورالعمل ها میباشد که مشخص میکند Container کدام کامپوننت های نرم افزاری را اجرا کند و اینکه چطور آنها اجرا میشوند . image در واقع یک تصویر از سیستم عامل اصلی میباشد . 


Docker run 


Docker run  در واقع دستوری برای راه اندازی  Container است . این را میدانیم که هر Container یک instance یا نمونه از image است و ماهیت Container بصورت موقتی می باشد . اما با این حال میتوان آنها را متوقف (stop) یا راه اندازی مجدد (Restart ) کرد . به این نکته هم توجه داشته باشید که هر image میتواند تعداد زیادی Container داشته باشد اما تا زمانی که هر کدام از آنها نام یونیک یا منحصر به فردی داشته باشند . 


Docker Hub 


Docker Hub یک مخزن Saas برای به اشتراک گذاری و مدیریت Container ها است . در آنجا میتوانید image های رسمی داکر که اکثرا بصورت متن باز هستند را پیدا کنید . اکثر توسعه دهندگان نیز پروژه های خود را به این Repository اضافه میکنند . 


Docker Engine 


مغز متفکر و هسته اصلی داکر محسوب میشود و این تکنولوژی بصورت کلاینت / سرور عمل میکند که Container ها را سخته و آنها را اجرا میکند. این موتور در دو نسخه Enterprise و Community عرضه میشود . نسخه Community آن بصورت متن باز و رایگان قابل استفاده است در حالی که نسخه Enterprise آن دارای یکسری از ویژگی های خاص است که هزینه اشتراک سالایانه آن برای هر Node چیزی حدود 1500 دلار است . 


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


Powered by Froala Editor



چه امتیازی به این مقاله می دید؟



امتیاز کاربران:5.0 از 4 رای


دیدگاه کاربران 0







    کاربر گرامی برای ارسال دیدگاه خود ابتدا باید در سایت لاگین نمایید


    برچسب ها

    Powered by Froala Editor