آموزش استفاده از داکر – سوالات درباره داکر [قسمت ۸]
این هفته هم با یکی از سری مقالات استفاده از داکر در خدمت شما هستم و در این مقاله قرار است تا سری سوالات درباره داکر را با همدیگر بررسی کنیم. از شما متشکرم که در ۸ هفته گذشته با بنده همراه بودید و در مسیر نگاهی به داکر و استفاده پایهای از این ابزار قدرتمند من را یاری نمودید.
در قسمت های قبلی با دستورات داکر، روش ساخت داکر فایل، ساخت داکر کامپوز فایل و استفاده از داکر کامپوز و چیستی داکر والیوم و استفاده از آن و چیستی داکر سوارم و نحوه نصب این ابزار قدرتمند را با یکدیگر آموختیم و تقریبا مسیر یادگیری داکر به انتهای خود رسیده و آموزش مقوله جدیدی برای معرفی اولیه و در سطح پایه وجود ندارد. در ادامه مقاله سوالات درباره داکر را ابتدا مطرح کرده و سپس در ادامه به پاسخ آنها میپردازیم.
در نظر داشته باشید که این سری مقاله برای کسانی نوشته شده است که تا کنون تجربهای در کارکردن با داکر نداشته و این سلسله مقالات اولین تجربه مواجهه آنها با داکر میباشد؛ به همین دلیل توضیحات اصولا سطحی و در دسترس بوده و گزینههای جانبی زیادی را بررسی نمیکنیم.
اولین سوال از سری سوالات درباره داکر: داکر چیست؟
شاید یکی از پایهایترین سوالات درباره داکر این موضوع باشد که اصلا داکر چیست؟ در تعریف کلی داکر یک برنامه کامپیوتری است که به شما دسترسی مجازیسازی در سطح سیستمعامل میدهد و این تغییر را برای شما به عنوان یک کانتینر ایجاد میکند. داکر ابتدا در سال ۲۰۱۳ معرفی شد و به شما کمک میکند تا نرمافزارها و پکیجهایی به اسم کانتینر را اجرا کنید.
به زبان ساده داکر یک ابزار است، که طراحی شده تا در بستر کانتینرها محیطی فراهم آورد تا ساخت و توسعه اپلیکیشنها راحتتر انجام شود؛ توصیه میکنیم پیش از خواندن ادامه مقاله با مطالعه دقیق مقاله docker چیست با مفاهیم ابتدایی داکر آشنا شوید و با کسب اطلاعات کافی به مطالعه ادامه مقاله بپردازید.
تفاوت بین مجازی سازی و کانتینرسازی چیست؟
در نظر داشته باشید که در مجازیسازی ما از ماشینهای مجازی استفاده میکنیم که از یک سری نرمافزارها استفاده میکنند که به طور مثال hypervisor ها یکی از آنها هستند؛ ماشینهای مجازی خود به عنوان یک سیستمعامل میتوانند نرمافزارهای متفاوتی بر روی خود داشته باشند و هر کدام میزان مشخصی رم، سیپییو و فضای ذخیرهسازی اشغال میکنند و به خود اختصاص میدهند.
اهمیت این سوال از سری سوالات درباره داکر اینجا مطرح میشود که ماشینهای مجازی کاملا فضای زیرساختی مورد نیاز خود را اشغال میکنند و به هیچ وجه در اختیار سیستم قرار نمیدهند.
اما در طرف دیگر کانتینرها را داریم که بدین صورت ارائه میشوند که بر روی نرمافزاری به نام Container Engine قرار گرفته و به راه اندازی و اجرای اپلیکیشنها میپردازند؛ در این ساختار ما لایهای به نام سیستمعامل وجود نداشته و به جای آن از یک سری والیوم در فضای ذخیره سازی که با تنظیمات داکر ایمیج ساخته شدهاند مواجه میشویم.
در نظر داشته باشید که کانتینرها سختافزار بسیار کمتری نسبت به ماشینهای مجازی استفاده میکنند چون هسته آنها در زمان ساخت برای اجرای اپلیکیشن مورد نیاز شما بهینه میشود و در زمان اجرا منابع سرور شما (رم، هارد، سیپییو) را به خود اختصاص نداده و تنها از آن به اندازه نیاز خود استفاده میکنند.
سوال بعدی از سری سوالات درباره داکر این است که، مزیت استفاده از داکر چیست؟
سوال پر اهمیت دیگری که در سری سوالات درباره داکر مطرح میشود آن است که مزیت استفاده از داکر چیست؟ اصلا چرا از داکر استفاده میکنیم؟
در جواب این سوال باید گفت: یک اپلیکیشن در داخل یک کانتینر میتواند بر روی هر سیستمی اجرا شود و به سیستمعامل یا هیچ فاکتوری از هاست ارتباطی ندارد، تنها نیاز است که داکر بر روی آن سیستمعامل نصب باشد پس فرآیند نصب و راهاندازی تعدادی زیادی از نرمافزارها از و زمانی که برای این کار میگذاریم کمتر میشود.
مزیت دیگر استفاده از داکر آن است که به دلیل تست و ارائه نرمافزار در داخل یک کانتینر ما نگرانیای درباره کار کردن یا نکردن این نرمافزار نخواهیم داشت، میتوانیم داکر را در هرزمان به هرجا و هرتعدادی که نیاز است انتقال داده و استفاده نماییم و محیط تستش تست کرده و به قسمت محصول برسانیم.
مزیت دیگر آن است که داکر کانتینر اصولا بر روی تمام پلتفرم ها در دسترس بوده و قابل نصب است به همین دلیل محدودیتی بر روی اجرا کانتینرها در هیچ جا وجود ندارد.در ورژن کنترلرها مانند گیت هم داکرها دست بالاتر را دارند چون به سادگی میتوان از آنها برای استفاده در ورژن کنترلرها استفاده کرد و توسعه اپلیکیشن و مدیریت کسب و کار را راحتتر انجام داد.
گیت چیست؟
تا چه اندازه با مفهوم گیت آشنایی دارید؟ در پاسخ به سوال گیت یعنی چه باید عنوان کنیم که بهطورکلی گیت یک سرور کنترلر یا ابزار مدیریت پروژه های دیپلومنت هست که به ما کمک میکند راحتتر کارهای دیپلویمنت خود را گسترش داده و مدیریت کنیم. این کلمه که مخفف عبارت GNU Interactive Tools است، یک نرم افزار و سیستم کنترل نسخه و از مدل نرم افزار های آزاد و متنباز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایلهای کامپیوتری و دنبال کردن کارهای انجام شده روی آنها توسط افراد مختلف است.
اگر دوست دارید دربارهی مفهوم گیت و نحوهی نصب آن بیشتر آشنا شوید، پیشنهاد میکنیم به وبلاگ ما سر زده و مقالهی گیت git چیست را مطالعه نمایید.
علاوه برآن شما برای استفاده از گیت نیاز دارید که با یک سری از مجموعه دستورات کاربردی و پر اهمیت آن نیز آشنایی پیدا کنید. به همین دلیل مطالعهی مقالهی دستورات کار با branch در گیت به شما کمک میکند از امتیازات متعدد گیت به شکل شایستهتری بهره ببرید.
چرا به جای ران کردن چند داکر از داکر کامپوز استفاده میکنیم؟
سوالات درباره داکر به دو دسته تقسیم میشوند: چگونگی استفاده از داکر، چرایی استفاده از داکر. در مورد دوم این تقسیمبندی راحتی کار با داکر کانتینر به چشم میخورد و توسعه پذیری این ابزار هم اهمیت خود را نشان میدهد. اما در نظر داشته باشید موردی که به آن بر میخوریم آن است که چند سرویس با هم کار کنند و نیاز به شبکه اختصاصی یا اولویت ساخت و توسعه داشته باشید از طرفی کار کردن آنها به یکدیگر وابسته باشند.
به طور مثال در تصویر بالا اجزا و قسمتهای متفاوت یک نرمافزار تحت وب مورد بررسی قرار گرفته اند. در این ساختمان اپلیکیشنهای مجزا DataBase, FileSystem, WebServer, Frontend را در اختیار داریم که در ساختمان کلی باید ۴ داکر با همین اسامی و ارتباط های مشخص در تصویر داشته باشیم که هر کدام متغییرهای محلی خود را داشته باشید و همچنین والیومهای مورد استفاده آنها در خیلی از سرویسها مورد بحث بوده و امکان دارد با یکدیگر در ارتباط یا مشترک باشد.
در لایه شبکه هم این چند اپلیکیشن برای سرویسدهی به مشتری نیاز است تا با یکدیگر در ارتباط باشند. در صورتی که سرویس ما نیاز به انتقال یا گسترش داشته باشد نیز باید یک یا چند ساختمان شبیه همین تصویر به مرحله ساخت برسد که در صورت اشتباه احتمالا ساختمان اصلا کار نکند.
داکر کامپوز docker-compose
برای همین داکر یک پلتفرم به اسم docker-compose ( داکر کامپوز ) ارائه داده که میتوانیم تمام تنظیمات ارتباطی و حافظهای تمام این سرویسها را در قالب یک فایل استاندارد yml ساخته و به داکر کامپوز معرفی کنیم تا تنها با یک دستور تمام سرویس ساخته شود یا هر کدام از اجزا و اپلیکیشنها با استفاده از گزینه scale به اندازه مورد نیاز ما گسترش پیدا کرده و سریعتر و در دسترس تر کار کنند.
تنظیمات HA این سرویسها هم بر عهده خود داکر بوده و پخش لود در این مقوله کاملا هوشمند و از طرف شبکه داخلی داکر انجام میشود. پیشنهاد میکنیم برای آگاهی بیشتر از داکر کامپوز به مقاله داکر کامپوز چیست مراجعه کنید و با مزایای بینظیر آن آشنا شوید.
بسیار متشکرم که در این سری مقالات استفاده از داکر با من همراه شدید. این قسمت تحت عنوان سوالات درباره داکر آخرین زنجیره از این مقالات بوده و در هفتههای بعد با سری مقالات آموزش انسیبل در خدمت شما خواهم بود. امیدوارم این سری مقالات تجربه خوبی از داکر در اختیار شما گذاشته باشد و تا حدودی بتوانید بعد از مطالعه این مقالات درک درستی از داکر داشته باشید و از این تکنولوژی به روز و سریع در ساخت و ارائه سرویسهای خود استفاده کنید.
[box type=”info” align=”” class=”” width=””]
دلیل انتخاب سرورهای ابر آراز چه می تواند باشد؟
در ابر آراز شما شاهد ارائه ی کلیه سرویس ها با بالاترین سرعت و امنیت هستید. همچنین ابر آراز با ارائه ی خدمات پشتیبانی 24 ساعته و رایگان در خدمت شماست، تا در صورت بروز هرگونه مشکلی در سریعترین زمان ممکن مشکل شما را رفع نماید. ابرآراز ارائه دهند سرویسهای تماما ابری بوده که در زمینه رایانش ابری فعالیت دارد، میتوانید برای استفاده و تجربه این سرویس ها به سایت ابرآراز مراجعه فرمایید.
با سلام – کل مقاله های مربوط به داکر را مطالعه کردم – ممنو از زحمات شما .
باسلام دوست عزیز. خوشحالیم که مقاله برای شما مفید بوده است.
سلام. سوال داشتم. آیا میشه نرم افزار wine رو با استفاده از داکر روی لینوکس نصب و اجرا کرد و یک نرم افزار ویندوز که نسخه لینوکس نداره رو روی نرم افزار wine که با داکر اجرا شده نصب و استفاده کرد و اطلاعات بدست آمده از نرم افزار ویندوز رو ذخیره کرد؟
سلام دوست عزیز. امیدواریم که این مقاله برای شما مفید بوده باشد. در پاسخ به سوال شما باید عنوان کنیم که wine تنها سیستمی وصل میشود.