اخبار، مطالب و رویدادهای مرتبط با توسعه نرم افزار رادکام

Docker و کاربرد آن در SQL Server

Docker

معرفی Docker

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

Docker

معرفی Container

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

Docker

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

Docker  

نقش Docker

Docker در واقع یک پلت فرم برای مدیریت Containerها است و شعار آن این است

Build any app, Ship anywhere, Run any where

یعنی هر نوع برنامه ای که تمایل دارید را توسعه دهید و آن را هر جایی که تمایل دارید منتقل کنید و روی هر بستری که تمایل داشتید آن را اجرا نمایید.

سیستم عامل و Docker

امکان استفاده از Docker در Windows Client و Windows Server همچنین Linux و Mac وجود دارد. در سیستم عامل Windows Server از نسخه 2016 به بعد، به صورت ساخته شده امکان استفاده از Docker و Container را پشتیبانی می کند و در نسخه 2019 ویژگی های بسیار خوبی را به این منظور افزوده است. به دلیل این که در حال حاضر همه چیز به سمت مایکرو سرویس پیش می رود، استفاده از ویژگی های Docker می تواند بسیار مفید و موثر واقع شود و به عنوان برنامه نویس و مدیر سیستم باید حتما با این مفهوم آشنا باشید.

Registery های Docker

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

اجرای SQL Server در بسترهای مختلف

از نسخه 2017 تغییرات بسیار خوبی در نرم افزار SQL Server ایجاد شد. در نسخه های قدیمی، این نرم افزار تنها در بستر Windows اجرا می شد اما در نسخه 2017 امکان اجرای آن روی انواع نسخه های Linux فراهم شد و اغلب امکانات Windows روی Linux نیز پشتیبانی می شود. علاوه بر این در نسخه 2017 امکان اجرای SQL Server روی Docker فراهم شد. سپس در نسخه 2019 نیز امکان استفاده از Kubernetes و همچنین امکان استفاده از Big Data Cluster که به نوعی به Docker مربوط می شود ایجاد شد.

در ادامه به چگونگی راه اندازی Docker اشاره خواهیم داشت:

نصب

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

Fedora:

Docker Command

CentOS7:

Docker Command

Debian:

Docker Command

بررسی نسخه Docker

پس از نصب برای بررسی کردن این که آیا Docker کار می کند یا خیر دستور زیر را اجرا می کنیم:

Docker Command

مشاهده Containerهای موجود در Docker

برای مشاهده لیست همه imageهایی که موجود هستند دستور زیر را اجرا می کنیم:

Docker Command

دریافت Container مورد نظر از Docker

برای دریافت یا به اصطلاح Pull کردن Container مورد نظر بر روی سیستم خود دستور زیر را اجرا نمایید:

Docker Command

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

Docker Command

نصب Container دریافت شده

برای نصب Container دریافت شده از Repository دستور زیر را اجرا می کنیم:

Docker Command

لیست Containerهای نصب شده

برای مشاهده لیست همه Containerهایی که روی سیستم نصب شده و Up هستند دستور زیر را اجرا می کنیم:

Docker Command

اجرای Container نصب شده

برای اجرای Container نصب شده دستور زیر را اجرا می کنیم:

Docker Command

مشاهده Log

می توانید Logهای مربوط به Containerهای نصب شده و در حال اجرا را با دستور زیر مشاهده نمایید:

Docker Command


*منابع: http://www.docker.com

پست های مرتبط

نام را وارد کنید
تعداد کاراکتر باقیمانده: 1000
نظر خود را وارد کنید