Pooria Setayesh
Pooria Setayesh
خواندن ۹ دقیقه·۵ سال پیش

داکر به چه معناست؟ داکر برای برنامه نویسان دات نت

داکر به چه معناست؟داکر برای برنامه نویسان دات نت
داکر به چه معناست؟داکر برای برنامه نویسان دات نت


سلام خدمت شما دوستان

شاید تا حالا وقتی با کامپیوتر کار کرده باشید با ابزارهای ساخت ماشین مجازی مثل Vm ware مثل virtual box و مدل های دیگر کار کرده باشید.

داکر شباهتی به این نوع ابزار ها و پلتفرم ها دارد. داکر یک پلتفرم متن باز یا open source می باشد که مبتنی بر سیستم عامل لینوکس راه اندازی شده است ولی بر عکس vm ware و دیگر ابزار های این شکلی روی سیستم عامل اصلی نصب می شود.

اگر با vm ware یا virtual box کار کرده باشید بعد از اینکه یک ماشین مجازی برای خودتان می سازید باید روی آن یک سیستم عامل نصب کنید حالا هر سیستم عاملی که نیاز دارید تا بتوانید کار خودتون را انجام بدهید .

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

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

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

در این مواقع، این ویروس را در داخل یک container و در docker اجرا میکنیم و اگر اتفاقی قرار باشد رخ دهد در داخل همان container رخ می دهد و به بیرون سرایت نمی کند.

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

فرض کنید سایتی داریم که باAsp.Net نوشته شده است و برای اجرای آن نیاز به IIS و Sql Server داریم. ممکن است با نصب بعضی برنامه ها ، بعضی دیگر از برنامه ها دچار مشکل بشوند.

برای این کار ما داکر را ران میکنیم وIIS و SqlServer را روی آن نصب میکنیم و در نهایت Container را به صورت Package در می آوریم.

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

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

در داکر مفاهیم بسیاری وجود دارد که در ادامه به توضیح چند مورد از آنها می پردازیم :

هاب (Hub) چه معناست؟

هاب یک سرویس اشتراک گذاری است که می توانیمcontainer های خودمان را به اشتراک بگذاریم و شباهتی به گیت هاب دارد.

کانتینر (Container) به چه معناست؟

همانطور که قبلا اشاره کردم، به عنوان مثال اگر بخواهید یک سایت PHP را اجرا نمایید یکContainer وجود دارد که تمام پیش نیاز های مربوط به این سایت را دارد شما کانتینر را pull میکنید و کلا چند دقیقه زمان شما را میگیرد تا پیش نیاز ها نصب شوند.همچنین شما میتوانید این کانتینر ها را با دیگر برنامه نویسان به اشتراک بگذارید.

داکر Image به چه معناست؟

یک برنامه ی بسته بندی شده است یا میشود به این صورت عنوان کرد که یک اپلیکیشن می باشد که شامل چند اپلیکیشن دیگر است که در کنار هم جمع شده اند!

به عنوان مثال دانلود برنامه از اپ استور ها به این صورت است که شما imageرا دانلود میکنید و نصب میکنید. نصب کننده یا نصب شونده اپلیکیشن هایی که نیاز دارد را در کنار خودش نصب میکند.

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

آیا داکر رایگان است؟

آیا برای استفاده از داکر باید هزینه ای را پرداخت کنیم؟همانطور که میدانید کمپانی های بزرگ باید برای خودشان درآمدی کسب کنند داکر هم از این قاعده مستثنی نیست.

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

و اما داکر دسکتاپ، کاملا رایگان می باشد و من در ویدئوی مربوط به این مطلب از همین نسخه استفاده کردم که به داکر CE شناخته می شود.

داکر انجین چیست؟

داکر انجین متشکل از تعدادی اپلیکیشنOpen Source می باشد که تعدادی از آنها عبارت اند از : networking و volumes و pluginsو containerو ...

قدرت داکر بر پایه ی این اپلیکیشن های متن باز بستکی دارد و مدیریت این اپلیکیشن ها بر عهده ی docker CLI می باشد که CLI مخفف عبارت Command line interface می باشد ، دستوراتی که تایپ میکنیم و استفاده میکنیم در این محیط می باشد.

تفاوت داکر با ماشین مجازی در چیست؟

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

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


با توجه به تصویر ما هم در VM و هم در داکر دارای سه App هستیم ، در vm هر کدام از این appهای ما OS خاص خودشان را دارند که سیستم عامل هر یک میتواند ویندوز، مک یا لینوکس باشد .ولی در داکر بر خلاف vm اپلیکیشن های ما روی سیستم عامل قراز نگرفتند و بر روی داکر اجرا می شوند.

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

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

هر کدام از این اپ ها در ماشین مجازی بر روی یک هایپروایزر نصب می شوند که شما آن را انتخاب کرده اید به عنوان مثال : vm ware و Microsoft hyper v و vs ware,... که هر کدام از این ها به شما امکان ساخت یک ماشین مجازی را می دهند.

نقاط ضعف ماشین های مجازی

1. اولین مشکل میزان فضای اشغال شده در هارد دیسک توسط VM می باشد به این دلیل که روی آن یک OS نصب می شود و اپ های مورد نظر روی آن نصب میشم

2. خرید لاینس هایی که مورد نیاز است که لایسنس ها عبارت اند از : هایپروایزر، سیستم عامل، آنتی ویروس، فایروال و ...

3. هر کدام از این OSها بعد از مدتی نیازمند نگهداری و به روزرسانی هستند.

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

5. نسبت به داکر شروع کندتری دارند

نکات مثبت ماشین های مجازی

1. به راحتی و بدون هیچ تغییری اپ ها روی آن نصب می شوند .(در داکر ما باید از برنامه هایی که کانتینر شده اند استفاده کنیم.)

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

3. ماشین مجازی ممکن است امکاناتی را ارائه دهد مثل migrationها و زمان بندی ها و بکاپ اتوماتیک که حداقل در داکر رایگان وجود ندارد.

در ادامه، در ویدئوی آموزشی به بررسی دستورات داکر پرداختیم و یک سایت Asp.net core را برای داکر کانتیتر کردیم.

لینک ویدئو : https://www.aparat.com/v/ehigz

ممنون از توجه شما

دانشگاه صدرامهندسی اینترنتداکر
شاید از این پست‌ها خوشتان بیاید