Ali Taghani / علی طغانی
Ali Taghani / علی طغانی
خواندن ۱۹ دقیقه·۴ سال پیش

داکر زیر ذره بین - کانتینر ویندوزی یا کانتینر لینوکسی؟

امروزه مکانیزم ها و فناوری های مدیریت و استقرار اپلیکیشن های بزرگ نسبت به سالیان گذشته و حتی همین چند سال اخیر بسیار تفاوت پیدا کرده است. سازمان ها از اپلیکیشن های بزرگ با معماری قدیمی یک تکه[1] به اپلیکیشن هایی با معماری جدید به صورت میکرو سرویس های توزیع شده مهاجرت کرده اند. این فرا ساختار[2] جدید نه تنها عملیات استقرار و هماهنگی را پیچیده کرده است بلکه چالش های امنیتی بزرگتر و مهمتری را نیز پیش روی همه قرار داده است. لذا وجود فناوری هاییکه بتوانند به سازمان ها در رفع این چالش ها کمک کنند بسیار ضروریست. در همین راستا فناوری کانتینر در چند سال اخیر طرف داران بسیاری پیدا کرده است و توسعه دهندگان می توانند به کمک پلتفرم داکر ایده های خود را به سادگی به واقعیت تبدیل کنند. در نظرسنجی سال 2019 سایت StackOverflow، داکر رتبه اول " پر طرف دار ترین[3] " و رتبه دوم " محبوب ترین[4] " پلتفرم را در بین توسعه دهندگان به دست آورده است.

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

امروزه داکر در همه پلتفرم ها قابل استفاده است
امروزه داکر در همه پلتفرم ها قابل استفاده است


در صورتیکه قصد دارید به سمت کانتینریزه کردن اپلیکیشن هایتان حرکت کنید چند تصمیم مهم اولیه هست که باید مد نظر قرار دهید:

  • کدام نسخه داکر را استفاده کنیم؟
  • از کانتینرهای ویندوزی برای کانتینریزه نمودن اپلیکیشن هایمان استفاده کنیم یا کانتینرهای لینوکسی؟
  • برای خودکار سازی مدیریت و راه اندازی کانتینرهای داکر از یک ابزار هماهنگ کننده[5] استفاده کنیم یا خودمان به صورت دستی این کار را انجام دهیم؟
  • مناسب ترین ابزار هماهنگ کننده کانتینرهای داکر برای هدف و کاربرد ما کدام است: داکر اس وارم یا کوبرنتیز؟

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

کدام نسخه داکر را استفاده کنیم؟

داکر در دو نسخه [6] CE و [7] EE در دسترس است. داکر در مارس 2017 نسخه EE را منتشر نمود و محصول سازمانی قبلی خود به نام Docker Datacenter را در آن ادغام کرد، همچنین نسخه رایگان و متن باز موتور خود را که از سال 2013 در دسترس عموم بود به نسخه CE تغییر نام داده و باز نشر داد. نسخه CE مناسب برای توسعه پروژه های نرم افزاری، و نسخه EE نیز مناسب برای استقرار آن هاست.

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

داکر نسخه CE

  • رایگان
  • قابل اجرا بر روی سیستم عامل های ویندوز دسکتاپ(نسخه 10) ، مک[8]، و لینوکس (CentOS، Debian، Fedora، Arch، Mint، و Ubuntu)

داکر نسخه EE

  • پولی (در سه طرح Basic، Standard، و Advanced که در هر طرح قیمت ها معمولا به صورت سالیانه و به ازاء هر نود داکر محاسبه می شود. البته نسخه EE را می توان برای مدت یکماه به صورت آزمایشی دانلود و استفاده نمود)
  • برخورداری از پشتیبانی کامل
  • قابلیت های بیشتر نسبت به نسخه CE : مثل دسترسی به ایمِج ها و پلاگین های رسمی داکر، امکان اسکن کردن ایمِج ها به منظور کشف آسیب پذیری های آن ها، پشتیبانی بومی[9] از کوبرنتیز، ابزار برای مدیریت متمرکز کلاستر های داکر، مکانیزم های توکار برای کنترل دسترسی و امنیت، و ...
  • قابل اجرا بر روی سیستم عامل های ویندوز سرور (نسخه 2016 به بالا)، لینوکس (RedHat Enterprise Linux یا RHEL، SUSE Linux Enterprise Server یا SLES، Oracle Linux، و Ubuntu)، و پلتفرم های ابری (AWS، Azure، Google Cloud)
  • امکان اجرای کنار هم نودهای ویندوزی و لینوکسی داکر در یک کلاستر: سازمان های می توانند طیف گسترده ای از اپلیکیشن های کانتینریزه شده (شامل اپلیکیشن های هیبریدی که هم به کانتینر ویندوزی و هم به کانتینر لینوکسی احتیاج دارند) را ضمن تامین امنیت، مدیریت نمایند. همچنین این نسخه از داکر تمام قابلیت های پیشرفته ای را که برای مدیریت کانتینرهای لینوکسی دارد برای کانتینرهای ویندوزی نیز ارائه می دهد مثل مدیریت کلیدهای خصوصی، امضاء دیجیتال ایمِج ها، و اسکن آن ها به منظور کشف آسیب پذیری ها، پشتیبانی از شبکه های همپوشان[10]، و...
  • امکان کانتینریزه نمودن اپلیکیشن های قدیمی ویندوزی: شما می توانید برنامه های قدیمی ویندوزی سازمان خود را به کمک داکر و بدون تغییر حتی یک خط از کد یا تغییر معماری آن، در قالب کانتینرهای مبتنی بر ویندوز سرور 2016 به بالا بسته بندی نموده و شرایط مهاجرت آن ها به زیرساخت های ابری را سرعت دهید، امروزه به این شیوه اصطلاحا «بردار و جا به جا کن[11]» می گویند. قابلیتی که ضمن افزایش امنیت اپلیکیشن قدیمی شما، زمان و هزینه مورد نیاز جهت نگهداری آن اپلیکیشن را به طور بسیار قابل ملاحظه ای برایتان کاهش می دهد، توسعه، تست و استقرار آن آسان تر می شود و مهم تر از همه امکان اجرای چند نمونه از آن بدون ایجاد هر گونه ناسازگاری برای سایر اپلیکیشن ها برایتان فراهم می شود.
  • نسخه جدید شامل به روز رسانی های امنیتی و رفع اشکال[12] های نرم افزاری هر سه ماه یکبار منتشر می شود، و آخرین تغییرات ارائه شده در هر نسخه نیز تا یک سال پشتیبانی می شوند
دوره های زمانی انتشار نسخه های جدید موتور داکر
دوره های زمانی انتشار نسخه های جدید موتور داکر


اگر قالب شماره نسخه های مختلف موتور داکر را از سال 2013 تا 2017، و از سال 2017 به بعد بررسی کنید متوجه یک تفاوت عجیب در قالب شماره گذاری نسخه ها خواهید شد. تا قبل از ماه مارس سال 2017، شماره 1.13 آخرین نسخه موتور داکر بود. اما بعد از معرفی نسخه های CE و EE داکر در آن تاریخ، شماره نسخه موتور داکر به 17.03 تغییر یافت (این موضوع در تصویر بالا قابل مشاهده است). از نگاه کاربران اینطور به نظر می آمد که داکر یکباره از 16 شماره صرفنظر کرده است، اما واقعیت اینست که داکر قالب شماره گذاری نسخ موتور خود را به YY.MM یعنی سال و ماه تغییر داده است، درست مشابه شماره نسخه های سیستم عامل لینوکس ابونتو(مثل ابونتو 18.04 یا 20.04).

داکر CE قبلا، در دو نسخه Edge/Beta و Stable به شرح ذیل منتشر و پشتیبانی می شد:
- نسخه Edge/Beta : نسخه جدید شامل به روز رسانی های امنیتی و رفع اشکال های نرم افزاری به طور ماهانه منتشر می شد، و آخرین تغییرات ارائه شده در هر نسخه نیز تا یک ماه پشتیبانی می شدند
- نسخه Stable : بعد از هر سه نسخه Edge یک نسخه Stable ارائه و تا چهار ماه پشتیبانی می شد

توجه: از تاریخ 10 دسامبر سال 2020 به بعد، داکر CE فقط در یک نسخه تجمیعی واحد منتشر و در اختیار تمام کاربران قرار می گیرد. علاوه بر این حجم آپدیت های ارائه شده نیز از چند 100 مگابایت به چند 10 مگابایت تقلیل و بهبود یافته است.

داکر در ویندوز

داکر و مایکروسافت در یک همکاری مشترک مهندسی سعی دارند تا یک تجربه منسجم و متداوم از کاربرد داکر را به توسعه دهندگان و کارشناسان عملیاتی ارائه دهند. ویندوز سرور از نسخه 2016 به بالا، و ویندوز دسکتاپ نسخه 10(البته برخی از ویرایش ها مثل Pro و Enterprise) از داکر به صورت بومی و مخصوص پشتیبانی می کنند.

کانتینرهای ویندوزی داکر مشابه نوع لینوکسی خود هستند و از قابلیت های زیر برخوردارند:

  • فراهم سازی تجربه ای همسان با تجربه نوع لینوکسی: در کانتینرهای ویندوزی از همان دستورات و نیز واسط کاربری محیط های لینوکسی استفاده می شود،
  • رفع نا همخوانی نسخه ها: به لطف ایزوله بودن کانتینرها، نسخه های مختلف IIS/.NET می توانند با هم بر روی یک سیستم عامل وجود داشته باشند،
  • برخورداری از محیط اجرای ایزوله تر و ایمن تری نسبت به نوع لینوکسی: کانتینرهای ویندوزی از دو حالت مختلف برای ایزوله نمودن محیط اجرا برخوردارند: حالت Process و حالت Hyper-V. موقع ساخت کانتینرها با استفاده از یک پارامتر مخصوص در خط فرمان کلاینت داکر می توانیم حالت مورد نظر را مستقیما انتخاب کنیم. به طور خلاصه حالت Process مشابه با حالت اجرای کانتینرها در لینوکس است و در این حالت هسته سیستم عامل بین خود سیستم عامل و کانتینرهای در حال اجرای بر روی آن مشترک خواهد بود، اما در حالت Hyper-V هر کانتینر درون یک ماشین مجازی مجزا، کمینه و بسیار بهینه شده اجرا می شود و لذا هر کانتینر هسته سیستم عامل مختص خود را دارد و از هسته سیستم عامل ماشین میزبان جدا خواهد بود به همین دلیل حالت Hyper-V نسبت به حالت Process محیط اجرای ایمن تر و ایزوله تری را برای کانتینرها فراهم می کند(برای کسب اطلاعات بیشتر در این باره به لینک مربوط در وب سایت شرکت مایکروسافت مراجعه کنید)،
  • کوچک تر شدن ایمِج[13] های پایه: مایکروسافت در نسخه های 1709، ،1802 و 2019 ویندوز سرور حجم ایمِج های پایه مبتنی بر Windows Server Core و Nano Server خود را به طور قابل توجهی کاهش داده است (برای کسب اطلاعات بیشتر راجع به مدل نسخه های مختلف ویندوز سرور به لینک مربوط در وب سایت شرکت مایکروسافت مراجعه کنید).

نرم افزار Docker Toolbox اولین ابزاری بود که در سال 2015 برای پشتیبانی از داکر در ویندوز تولید و منتشر شد. این ابزار در حقیقت یک ماشین مجازی مبتنی بر Virtual Box شرکت اوراکل است که توزیع boot2docker سیستم عامل لینوکس در آن نصب شده است. این ابزار مناسب اهداف یادگیری و یا تست کانتینرهای لینوکسی قبل از استقرار آن ها در محیط های عملیاتی لینوکسی می باشد. کاربرانی که سیستم عامل ویندوز دسکتاپ آن ها 64 بیتی و جزو نسخه های 7، 8، 8.1 یا 10 (ویرایش Home با شماره ساخت[14] ما قبل 1903) می باشد و امکان استفاده از ابزارهای جدیدتر داکر را ندارند، با نصب این ابزار می توانند کار با کانتینرهای لینوکسی داکر را در ویندوز تجربه نمایند. برای آشنایی با نحوه نصب Docker Toolbox بر روی ویندوز دسکتاپ می توانید به لینک مربوط در وب سایت داکر مراجعه نمائید.

اما اگر شما جزء افرادی هستید که سیستم عامل ویندوز دسکتاپ آن ها 64 بیتی و نسخه 10 (ویرایش های Pro، Enterprise با شماره ساخت 1607 به بالا، Education با شماره ساخت 16299 به بالا) این خبر خوش برایتان هست که علاوه بر کانتینرهای لینوکسی، کانتینرهای ویندوزی نیز قابلیت اجرا شدن در نسخه های مذکور سیستم عامل ویندوز را دارند:

  • کانتینرهای ویندوزی: کانتینرهای ویندوزی مکانیزم بومی و مخصوص خود ویندوز برای پشتیبانی از داکر می باشند. این نوع از کانتینرها بهترین گزینه برای سیستم عامل ویندوز است و مستقیما بر روی سیستم عامل ویندوز ماشین میزبان اجرا می شود و به آن ها اصطلاحا [15] WCOW گفته می شود.
  • کانتینرهای لینوکسی: کانتینرهای لینوکسی مستقیما قابلیت اجرا بر روی سیستم عامل ویندوز را ندارند. لذا این نوع از کانتینرها بایستی بر روی یک لینوکس مجازی در سیستم عامل ویندوز اجرا شوند. پشتیبانی از کانتینرهای لینوکسی در ویندوز تا به امروز یک سیر تکاملی دارد که در ادامه به تشریح آن خواهم پرداخت.

در سال 2016 داکر ابزار Docker for Windows را برای ویندوز دسکتاپ نسخه 10 (ویرایش های فوق الذکر) منتشر کرد. با نصب این نرم افزار، به طور خودکار یک ماشین مجازی لینوکسی به نام MobyLinuxVM که بر روی Hyper-V اجرا می شود، در ویندوز تان ساخته می شود (که بعد از نصب با مراجعه به نرم افزار Hyper-V Manager می توانید آن را مشاهده کنید). این نرم افزار در حقیقت نسخه CE پلتفرم داکر را به همراه تمام ابزارهای آن در سیستم عامل ویندوز نصب می کند. در این مدل، کلاینت داکر (یعنی همان Docker CLI) بر روی ویندوز دسکتاپ اجرا می شود و دیمن[16] داکر به همراه تمام وابستگی های مورد نیاز آن بر روی لینوکس مجازی Moby. نحوه کارکرد این مدل را می توانید در شکل زیر مشاهده کنید:

مشکلی که مدل فوق دارد آنست که شما نمی توانید کانتینرهای لینوکسی و ویندوزی را همزمان با هم اجرا کنید، بلکه در هر لحظه فقط یکی از آن ها می توانند اجرا شوند. این مشکل در توسعه اپلیکیشن های هیبریدی[17] خود را نشان می دهد. مثلا اپلیکیشنی را در نظر بگیرید که خودش با زبان جاوا توسعه داده شده و در یک کانتینر لینوکسی بسته بندی شده است اما پایگاه داده آن با MS SQL Server طراحی و پیاده سازی شده و در یک کانتینر ویندوزی بسته بندی شده است. با استفاده از مدل فوق شما نمی توانید اپلیکیشن مذکور را در محیط توسعه لوکال ویندوزی خود به طور کامل تست کرده و اجرا نمائید.

در سال 2017 داکر نوع جدیدی از کانتینرهای لینوکسی به نام [18] LCOW را برای ویندوز 10 معرفی نمود که مکانیزم بومی و مخصوص خود ویندوز برای پشتیبانی از کانتینرهای لینوکسی در ویندوز می باشد. قابلیت مهمی که LCOW با خود آورد این بود که یک موتور داکر به تنهایی قادر به اجرای ایمِج های چندین سیستم عامل مختلف باشد. با معرفی LCOW در سال 2017 و انتشار شماره 18.02.0-ce-rc1-win50 از نسخه Edge نرم افزار Docker Desktop (قبلا به آن Docker for Windows گفته می شد) در سال 2018 امکان اجرای همزمان کانتینرهای ویندوزی و لینوکسی در کنار هم برای سیستم عامل ویندوز 10 (ویرایش های Pro و Enterprise با شماره ساخت 1806 به بالا) فراهم شد. برای مشاهده راهنمای نصب نرم افزار Docker Desktop در ویندوز 10 (ویرایش های فوق الذکر) به لینک مربوط در وب سایت داکر مراجعه کنید. نصب نرم افزارDocker Desktop در ویندوز 10 این امکان را برایتان فراهم می کند تا اولا نوع کانتینر خود را از ویندوزی به لینوکسی یا از لینوکسی به ویندوزی تغییر دهید (گزینه پیش فرض، کانتینر لینوکسی است)، و ثانیا کانتینرهای ویندوزی و لینوکسی را همزمان در کنار هم از داخل ویندوز اجرا نمائید. برای آشنایی با نحوه سوئیچ کردن بین کانتینرهای ویندوزی و لینوکسی در نرم افزار Docker Desktop به لینک مربوط در وب سایت داکر مراجعه کنید. همچنین برای مشاهده نحوه اجرای همزمان کانتینرهای ویندوزی و لینوکسی در کنار هم در سیستم عامل ویندوز 10 به کمک Docker Desktop، به این لینک در وب سایت مایکروسافت مراجعه نمائید.

گام بعدی در سیر تکاملی پشتیبانی از کانتینرهای لینوکسی در ویندوز، انتشار نرم افزار Docker Desktop مبتنی بر قابلیت WSL 2 در سال 2020 با نام Docker Desktop WSL 2 backend می باشد. اینکه [19] WSL چیست و چه قابلیت های خاصی دارد خود نیازمند یک مقاله مفصل و جداگانه است. اما به طور خلاصه WSL یکی از قابلیت های جدید ویندوز ۱۰ است که می‌توانید با فعال کردن آن و نصب یک توزیع لینوکس از طریق فروشگاه مایکروسافت (Microsoft Store)، سیستم عامل لینوکس را بدون استفاده از یک ابزار مجازی سازی مثل VMware، به ‌صورت یک زیر سیستم لوکال در خود ویندوز اجرا کنید. برعکس نسخه اولیه WSL که از یک کرنل مجازی روی هسته ویندوز استفاده می‌کرد این بار در نسخه دوم WSL شاهد یک کرنل واقعی لینوکس در خود ویندوز هستیم که باعث افزایش سرعت اجرای دستورها، خواندن، و نوشتن اطلاعات در WSL می‌شود. در این نسخه از Docker Desktop، دیمن داکر درون همان توزیع لینوکسی که در WSL نصب کرده ایم اجرا خواهد شد و بر خلاف MobyLinuxVM که در نرم افزار Hyper-V Manager قابل مشاهده بود، توزیع نصب شده توسط WSL 2 در نرم افزار Hyper-V Manager قابل رویت نیست. علاوه بر آن WSL 2 بهبود های بسیار قابل توجهی را در اشتراک سیستم فایل، زمان بوت شدن سیستم عامل، تخصیص حافظه به صورت پویا، استفاده حداقلی از منابع پردازشی، زمان لازم برای راه اندازی دیمن داکر ارائه نموده است. WSL 2 ، آینده Docker Desktop برای سیستم عامل ویندوز خواهد بود. برای آشنایی بیشتر با Docker Desktop WSL 2 backend و نیز آموزش نحوه نصب آن به لینک مربوط در وب سایت داکر مراجعه نمائید.

نصب Docker Desktop بر روی ویرایش Home ویندوز 10 (با شماره ساخت 1903 به بعد) با نصب آن بر روی سایر ویرایش های ویندوز 10 اندکی متفاوت است و ملاحظاتی نیاز دارد به عنوان مثال بایستی قابلیت WSL 2 بر روی ویندوز را از قبل فعال کرده باشید (برای مشاهده سایر نیازمندی ها و نیز راهنمای نصب نرم افزار Docker Desktop در ویرایش Home ویندوز 10 به لینک مربوط در وب سایت داکر مراجعه کنید). نکته قابل توجه اینکه در ویرایش Home ویندوز 10 شما فقط می توانید با کانتینرهای لینوکسی در نرم افزار Docker Desktop کار کنید نه کانتینرهای ویندوزی.

توجه: از نسخه شماره 3.0.0 به بعد، نرم افزار Docker Desktop در یک نسخه تجمیعی واحد منتشر و در اختیار تمام کاربران قرار می گیرد و دیگر خبری از نسخه های Edge و Stable نیست.

و اما ویندوز سرور. وقتی ویندوز سرور 2016 منتشر شد مایکروسافت با یک باز معماری مجدد امکان پشتیبانی از پروسه های ایزوله را در ویندوز فراهم ساخته بود. به لطف همین ویژگی جدید، ویندوز سرور نسخه 2016 به بالا، به صورت کاملا بومی و مخصوص و بدون اتکاء به هر گونه ابزار مجازی سازی مثل Hyper-V از داکر پشتیبانی می کند. همچنین لازم به ذکر است که ویندوز های سرور نسخه 2016 به بالا تنها نسخه هایی از سیستم عامل ویندوز (چه سرور چه دسکتاپ) هستند که به صورت کاملا بومی و بدون اتکا به ابزارهای ثالث از کانتینرهای ویندوزی پشتیبانی می کنند. پشتیبانی از کانتینرهای لینوکسی در ویندوز سرور به کمک Hyper-V فراهم می شود. در نسخه EE داکر و نیز با توجه به معرفی کانتینرهای لینوکسی نوع LCOW، امکان اجرای همزمان کانتینرهای ویندوزی و لینوکسی در کنار هم در ویندوز سرور 2016 به بالا فراهم است. نسخه EE داکر بدون هیچگونه هزینه اضافی در همان لایسنس خریداری شده برای ویندوز سرور ارائه می شود.

اجرای همزمان کانتینرهای ویندوزی و لینوکسی در کنار هم در ویندوز سرور 2016 به بالا، به مدد نسخه CS یا تجاری [20] موتور داکر و نیز کانتینرهای لینوکسی نوع LCOW
اجرای همزمان کانتینرهای ویندوزی و لینوکسی در کنار هم در ویندوز سرور 2016 به بالا، به مدد نسخه CS یا تجاری [20] موتور داکر و نیز کانتینرهای لینوکسی نوع LCOW


توجه: وقتی از نرم افزار Docker Desktop استفاده می کنید، امکان استفاده از ابزارهای مجازی سازی مثل Virtual Box و VMWare فقط با ملاحظاتی امکان پذیر است به این معنی که همه نسخه های ابزارهای مذکور قابلیت کار کردن در کنار ابزار مجازی سازی Hyper-V ویندوز را ندارند. در صورتیکه از Virtual Box استفاده می کنید شماره نسخه آن حداقل باید 6 باشد، و همچنین در صورتیکه از VMWare استفاده می کنید شماره نسخه آن حداقل باید 15.5.5 باشد.
توجه: اگر ویندوز تان جزو نسخه های 7، 8، 8.1 یا 10 (ویرایش Home با شماره ساخت ما قبل 1903) و نمی خواهید از ابزار Docker Toolbox استفاده کنید و علاقه مندید که کار با داکر را در لینوکس تجربه کنید و از طرف دیگر نصب لینوکس در کنار ویندوز به صورت بوت دوگانه[21] برایتان مشکل و دردسر ساز است کافیست تا از ابزار مجازی سازی VMWare استفاده کنید. لذا کافیست نرم افزار VMWare Player را نصب و آن را در حالت خاصی به نام «Unity Mode» اجرا نمائید. با اینکار شما می توانید ویندوز و لینوکس را یکجا کنار هم داشته باشید. سپس می توانید داکر را داخل ماشین مجازی لینوکس نصب و استفاده نمائید. کارایی این روش مناسب گزارش شده است و کل ابزارهای مورد اشاره نیز رایگان هستند.

داکر در مک

اگر از محصولات شرکت اپل استفاده می کنید و سیستم عامل شما از نوع OS X می باشد، شما هم می توانید کار با داکر را به مانند کاربران سیستم عامل های ویندوز و لینوکس تجربه کنید. در صورتیکه سیستم عامل مک شما ویرایش Yosemite با شماره نسخه 10.10.3 به بالاست (البته بهتر است سیستم عامل کامپیوتر خود را به شماره نسخه 10.11 به بالا ارتقا دهید، چونکه برای شماره نسخه های 10.10.X مسئولیت کار با خود شما خواهد بود و تضمینی نیست) می توانید نرم افزار Docker Desktop ویژه سیستم عامل خود را از وب سایت داکر دانلود و نصب کنید.

اما در صورتیکه نسخه سیستم عامل شما از شماره نسخه 10.8 به پایین است و از نرم افزار Docker Desktop پشتیبانی نمی کند، می توانید مانند کاربران سیستم عامل ویندوز از ابزار Docker Toolbox برای کار با کانتینرهای لینوکسی استفاده نمائید.

از کانتینرهای ویندوزی برای کانتینریزه نمودن اپلیکیشن هایمان استفاده کنیم یا کانتینرهای لینوکسی؟

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

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

یا حتی ممکن است شما اپلیکیشن های قدیمی ویندوزی داشته باشید که بخواهید آن ها را همانطور به فضاهای ابری منتقل کنید. در این صورت راه حل چیست؟ راه حل آنست که به کمک داکر نسخه EE ابتدا آن اپلیکیشن را در قالب یک کانتینر ویندوزی بسته بندی نمائید و سپس آن را به فضای ابری منتقل کنید.

با توجه به مجموعه مطالبی که بیان شد، می توان موارد زیر را به عنوان جمع بندی مطرح نمود:

پر واضح است که مایکروسافت و داکر در یک همکاری مشترک مهندسی در حال توسعه فناوری های مرتبط با پشتیبانی از داکر در ویندوز هستند اما بسیاری از قابلیت هایی که امروز در ویندوز در دسترس است در فاز آزمایشی هستند. لذا بهتر آنست تا گزینه اول شما برای کار با داکر، استفاده از کانتینرهای لینوکسی باشد.
برای استقرار اپلیکیشن در محیط های عملیاتی، اگر کانتینر لینوکسی است حتما از لینوکس سرور، و اگر کانتینر ویندوزی است حتما از ویندوز سرور استفاده کنیم.
از ابزارهای پشتیبانی داکر در سیستم عامل های مک و ویندوز دسکتاپ شامل Docker Toolbox و Docker Desktop فقط برای توسعه و تست اپلیکیشن های کانتینریزه شده استفاده کنیم نه برای استقرار در محیط های عملیاتی.
با وجود اینکه ویندوز سرور نسخه 2016 به بالا از Docker Desktop پشتیبانی می کند، برای استقرار اپلیکیشن های کانتینریزه شده در محیط های عملیاتی هرگز از Docker Desktop استفاده نکنید. البته برخی از برنامه نویسان عادت دارند تا برای محیط توسعه لوکال خود نیز از ویندوز سرور استفاده کنند که در این حالت اگر نیاز باشد می توانند از Docker Desktop استفاده کنند.
در حال حاضر برخی از ارائه دهندگان زیر ساخت های ابری از کانتینرهای ویندوزی پشتیبانی نمی کنند.

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

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


[1] Monolithic

[2] Paradigm

[3] Most Wanted

[4] Most Loved

[5] Orchestrator

[6] Community Edition

[7] Enterprise Edition

[8] Mac

[9] Native

[10] به انگلیسی Overlay Networking. شبکه ای رایانه‌ای است که به صورت منطقی در بالادست یک شبکه ی دیگر ساخته می‌شود. هر گره (شبکه) از این شبکه توسط یک لینک فیزیکی یا مجازی به گره ی متناظر در شبکه پایینی متصل است. به عنوان مثال خود شبکه اینترنت یک شبکه همپوشان بر روی شبکه تلفن به عنوان شبکه پایین دستی است.

[11] Lift and Shift

[12] Bug Fix

[13] Image

[14] برای آگاهی از نسخه و نیز شماره ساخت سیستم عامل ویندوز خود می توانید در پنجره Run ویندوز، دستور winver را وارد کرده و دکمه ok را بفشارید.

[15] Windows Containers on Windows

[16] Daemon

[17] Hybrid

[18] Linux Containers on Windows

[19] Windows Subsystem for Linux

[20] Commercially Supported

[21] Dual Boot

داکرdockerکانتینرcontainerdevops
سلام ?? علی هستم، کارشناس ارشد فناوری اطلاعات. علاقه مندم دانسته هام در زمینه برنامه نویسی رو به اشتراک بگذارم.
شاید از این پست‌ها خوشتان بیاید