داکر (به انگلیسی: Docker) برنامه رایانه ای و ابزاری است که برای هر نوع توسعه دهنده ای صرف نظر از اینکه چه فناوری ها یا چارچوب هایی برای توسعه نرم افزار استفاده می کند بسیار مفید است.

طبق مستندات داکر

داکر یک برنامه متن باز برای توسعه، حمل و نقل و اجرای برنامه ها است. Docker شما را قادر می سازد تا برنامه های کاربردی خود را از زیرساخت خود جدا کنید تا بتوانید نرم افزار را به سرعت تحویل دهید.

خوب می دانیم که این توضیحات برای مبتدیان مناسب نیست. اجازه بدهید به شما یک داستان بگوییم.

داکر

مسئله

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

این داستان است. پس داکر کجاست😠؟ شوخی میکنی😡

نه، صبر کنید.

داکر

راه حل

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

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

خب، در مورد ماشین های مجازی و کانتینرها به شما توضیح دادیم. الان تفاوت بین این دو را روشن می کنیم.🧐🧐

تفاوت ماشین های مجازی و کانتینرها

تفاوت ماشین های مجازی و کانتینرها

جداسازی

ماشین های مجازی کاملاً از یکدیگر جدا هستند. کانتینرها کاملاً از یکدیگر جدا نیستند. اما آنها بیشتر جداشده هستند تا پردازش شوند.

قابلیت حمل

ماشین های مجازی را می توان بر روی هر سخت افزاری که هایپروایزر را پشتیبانی می کند اجرا نمود. کانتینرها را می توان بر روی هر سخت افزاری که داکر نصب شده است اجرا کرد.

کارایی

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

خب، حالا شما به خوبی متوجه شده اید که چه تفاوتی بین این کانتینرها مانند داکر و ماشین های مجازی وجود دارد.

پس همانطور که گفتیم داکر یک کانتینر است و نکات مختلفی در مورد کانتینرها ذکر کردیم. اما سوال این است که کاربرد عملی داکر چیست؟ 🤨🤨

داکر

استفاده از داکر در دنیای واقعی

Docker به شما این امکان را می دهد که یک بسته نرم افزاری سبک وزن، مستقل و قابل اجرا ایجاد کنید که می تواند بر روی هر ماشینی که داکر را نصب کرده است اجرا کنید. این امر استقرار و مدیریت برنامه ها و اشتراک گذاری برنامه ها با دیگران را آسان می کند.

استقرار برنامه ها

از Docker می توان برای استقرار سریع و آسان برنامه ها برای تولید استفاده کرد.

آزمایش برنامه ها

از داکر می توان برای ایجاد محیط های ایزوله برای آزمایش برنامه ها استفاده کرد.

مدیریت زیرساخت

از داکر می توان برای مدیریت زیرساخت با ایجاد و اجرای کانتینرها در صورت تقاضا استفاده کرد.

به اشتراک گذاری برنامه ها

تصاویر Docker را می توان با دیگران به اشتراک گذاشت و توزیع برنامه ها را آسان می کند.

فکر می کنم با توضیحات خنده دار من به درک اولیه ای از نحوه کار داکر رسیده اید😂. اما من می دانم که شما هنوز هیچ ایده ای برای استفاده از داکر از دیدگاه عملی ندارید.

امیدواریم که دوباره با یک مطلب دیگر درباره Docker با شما ارتباط برقرار کنیم که دیدی عملی از Docker به شما می دهد. 😇😇

اگر علاقه مند به یادگیری React یا چیزهای مرتبط با کد نویسی هستید، مطالب من رو در مجله اینترنتی دنبال کنید. شما می توانید دانش خود را تازه کنید و در مورد چیزهای جدید مرتبط با برنامه نویسی بیاموزید. 🤩🤩😃