در مقالات قبلی اشاره کردیم که ساخت اپلیکیشنهای مبتنی بر کانتینر باعث میشه تا انتقال و اجرای اونها در محیطهای محاسباتی مختلف سادهتر انجام بشه. حتماً میپرسید که Docker چیست و چه نقشی در اینجا ایفا میکنه؟ باید بدونید که داکر نوعی پلتفرم نرمافزاریه که برای ساخت برنامههای مبتنی بر کانتینر استفاده میشه. اگر میخواین بهطور دقیق با ماهیت این پلتفرم و کاربردهای اون آشنا بشین، تا انتهای مطلب با کندو همراه باشید. همچنین میتونید در دوره آموزش شبکه کندو شرکت کنید.
نگاهی بر تاریخچهی docker
قبل از اینکه به سؤال ((Docker چیست؟)) پاسخ بدیم، بهتره که در مورد تاریخچه اون اطلاعات لازم رو بهدست بیاریم. حدود ۵ سال پیش بود که شخصی به اسم سالامان هایکز از پلتفرمی به اسم داکر رونمایی کرد که برای تعامل بهتر با کانتینرها ساخته شده بود.
این ایده موفق بود و بعد از انتشار نسخهی ۱.۰ اون بهصورت رسمی در سال ۲۰۱۴ محبوبیتش بین برنامهنویسها به شدت افزایش پیدا کرد. نتیجه این شد که شرکتها به جای اینکه اپلیکیشنهای تحت سرور رو تو ماشینهای مجازی راهاندازی کنن، به سراغ داکر رفتن. همهی این موارد در نوع خودش نشوندهندهی امنیت بالای این پلتفرم بود.
Docker چیست؟
داکر نوعی پتلفرم منبع بازه که برای توسعه، جابهجایی و اجرای اپلیکیشنها استفاده میشه. در حقیقت docker این قابلیتها رو تو یک محیط کاملاً ایزوله به اسم کانتینر فراهم میکنه. این ایزوله بودن و امنیت بالایی که داکر داره به کاربر اجازه میده تا چند کانتینر را بهصورت همزمان روی یک هاست اجرا کنه.
کانتینرها همهی اون چیزی رو که برای اجرای برنامه نیازه تو خودشون جا دادن، بههمین دلیل شما دیگه به مواردی که روی هاست نصب شدن وابسته نیستید. پس داکر در واقع همون بستر مدیریت کانتینرها است.
کاربرد Docker چیست؟
بعد از آشنایی نسبی با ماهیت داکر سؤالی که مطرح میشه اینه که کاربرد Docker چیست؟ مجموع کاربردهای این پلتفرم منبعباز شامل موارد زیر هست:
تحویل سریع و مداوم اپلیکیشنها
در بستر داکر توسعهدهندهها میتونن تو محیطهای استانداردشده با استفاده از کانتینرهای محلی که برنامهها و خدمات شما رو دربردارند، کار کنند. کانتینرها باعث میشن روند کار بهصورت مداوم و منظم انجام بشه و همین در نهایت منجر به تحویل سریع و بدون وقفهی اپلیکیشنها میشه.
تصور کنید که تیمتوسعهدهندگان شما کدها رو بهصورت محلی مینویسن، حالا با وجود کانتینرهای داکر میتونن اونها را با بقیهی همکاران خودشون هم بهاشتراک بگذارند. در عین حال میشه از داکر برای تست خودکار و دستی برنامه هم استفاده کرد.
اگر که در زمان بررسی، باگ یا مشکل خاصی شناسایی بشه، بهراحتی در محیط توسعه برطرف میشه و مجدداً برای اعتبارسنجی مورد بررسی قرار میگیره. در آخر بعد از اتمام تست، تغییرات صورت گرفته بهسادگی قراردادن تصویر آپدیت شده تو محیط تولید در اختیار مشتریها قرار میگیره.
سازماندهی و مقیاسبندی مناسب
اگر که از پلتفرم مبتنی بر کانتینر داکر استفاده کنید میتونید محیطهای کاری خودتون رو به راحتی بین سیستمهای اجرایی مختلف منتقل کنید. پس با این حساب کانتینرهای داکر میتونن روی لپتاپ، ماشین فیزیکی یا مجازی در دیتاسنتر، فضای ابری یا ترکیبی از محیطها اجرا بشن.
افزایش ظرفیت سختافزار موجود
مهمترین کاربرد Docker چیست؟ یکی از مهمترین کاربردهای داکر سریع بودن این پلتفرمه که اون رو به یه جایگزین مناسب و مقرونبهصرفه برای ماشینهای مجازی مبتنی بر هایپروایزر تبدیل میکنه؛ پس شما میتونید بدون تغییردادن سختافزارهای سرور از ظرفیت اون برای رسیدن به اهداف تجاری مختلف استفاده کنید.
معماری داکر
مدل معماری Docker چیست؟ داکر از مدل معماری کلاینت-سرور استفاده میکنه. تو این مدل کلاینت با دیمون که وظیفهی سنگین ساخت، اجرا و توزیع کانتینرها رو برعهده داره، صحبت میکنه. امکان اجرای کلاینت و دیمون روی یک سیستم وجود داره؛ البته میشه کلاینت رو به یک دیمون داکر از راه دور هم متصل کرد.
ارتباط بین کلاینت و دیمون با استفاده از یه REST API و از طریق سوکتهای UNIX یا رابط شبکه انجام میشه. یکی دیگه از کلاینتهای داکر، Docker Compose نام داره و به کاربر اجازه میده تا با اپلیکیشنهایی که از چندتا کانتینر تشکیل شدن، کار کنه.
دیمون داکر
وظیفهی دیمون Docker چیست؟ دیمون بهدرخواستهای Docker API گوش میده و تصاویر، کانتینرها، شبکه و… رو مدیریت میکنه. علاوه بر این یه دیمون میتونه برای مدیریت سرویسهای داکر با بقیهی دیمونها هم ارتباط برقرار کنه.
کلاینت داکر
راه اصلی تعامل بیشتر کاربران داکر با این پلتفرم، کلاینته. وقتی شما از دستوراتی مثل docker run استفاده میکنید، کلاینت این دستورها رو به دیمون میفرسته تا اجرا بشن. دستورات داکر از Docker API استفاده میکنن. جالبه بدونید که کلاینت داکر میتونه با بیشتر از یک دیمون ارتباط برقرار کنه.
دسکتاپ داکر
دسکتاپ Docker چیست؟ یه برنامهی کاربردی با قابلیت نصب ساده و راحت برای مک، ویندوز و لینوکس هست که با استفاده از اون میتونید برنامه و میکروسرویسهای کانتینری بسازین و اونها رو به اشتراک بگذارید.
بخشهای مختلف دسکتاپ داکر شامل دیمون، کلاینت، Compose، Content Trust، Kubernetes و Credential Helper هست.
رجیستریهای داکر
تصاویر داکر درون ریجستری اون ذخیره میشن. هاب داکر در حقیقت یک نوع رجیستری عمومیه که هر شخصی میتونه ازش استفاده کنه و داکر هم بهصورت پیشفرض برای جستجوی تصویر در هاب داکر پیکربندی شده؛ البته امکان اجرای رجیستری خصوصی هم وجود داره.
وقتی که از دستورات pull یا run استفاده میکنید، تصاویری که نیاز دارید که از رجیستری پیکربندی شده، بیرون کشیده میشن. در مقابل وقتی که از دستور push استفاده میکنید، تصویر به رجیستری پیکربندی شده منتقل میشه.
اشیا داکر
منظور از اشیا Docker چیست؟ وقتی که از داکر استفاده میکنید، در حقیقت در حال ایجاد و استفاده از تصاویر، کانتینرها، شبکهها، پلاگینها و… هستین که در این بخش بهصورت کلی اونها رو بررسی میکنیم.
تصاویر
منظور از تصویر، یه الگویی خواندنیه که دستورالعملهایی رو برای ساخت کانتینر داکر در برداره. در بیشتر موارد این تصویر برمبنای سایر تصاویر و یک سری تغییرات سفارشی ساخته میشه. شما میتونید تصویر داکر رو خودتون بسازید یا اینکه از تصاویر ساخته شده توسط بقیهی کاربرها استفاده کنید.
بیشتر بخوانید: 9 مهارت پرطرفدار بازارکار دنیا برای مهاجرت
کانتینرها
کانتینر نمونهی قابل اجرا از تصویره. شما میتونید با استفاده از API یا CLI یه کانتینر بسازید، اون رو متوقف یا حذف کنید یا اینکه حرکت بدید. بهعلاوه میشه یک یا چند شبکه و حافظه رو به کانتینر وصل کرد و برمبنای وضعیت فعلی یه تصویر جدید ساخت.
بهطور پیشفرض کانتینرها از هم و ماشین هاست جدا هستن. البته امکان کنترل کردن میزان جدا بودن شبکه کانتینر، حافظه یا بقیهی سابسیستمهای زیربنایی از سایر کانتینرها و ماشین هاست هم وجود داره.
سخن آخر
تو این مقاله به سؤال ((Docker چیست؟)) پاسخ دادیم و مهمترین بخشها و کاربردهای این پلتفرم فوقالعاده رو با هم بررسی کردیم. استفاده از داکر مزایای مختلفی داره که شرکت و تیم توسعهدهندگان شما میتونن بهراحتی از اونها بهرهمند بشن. برای کسب اطلاعات بیشتر در این مورد کافیه که سؤالات خودتون رو با کارشناسان کندو بهاشتراک بگذارید.