داکر دیمون یا Docker Daemon یکی از کلیدیترین عناصر اکوسیستم داکر است که وظایف مختلفی را برعهده دارد. از آنجایی که داکر دیمون نقش مهمی در فرایند کاری مدیریت و استقرار کانتینرها را برعهده دارد، هر فردی که به یادگیری داکر علاقه دارد، باید با این تکنولوژی آشنا شود.
در این مطلب از وبلاگ همروش قصد داریم شما را به صورت مقدماتی با Docker Daemon آشنا کرده و جایگاه آن در اکوسیستم داکر را بررسی کنیم.
داکر چیست؟
داکر یک پلتفرم متن باز برای کانتینرسازی اپلیکیشنهاست. با استفاده از این تکنولوژی به سادگی میتوانید اپلیکیشنها و نیازمندیهای مربوطه را مستقر یا Deploy کنید. هر کانتینر داکر به صورت کلی شامل خود اپلیکیشن و تمام نیازمندی لازم برای اجرا آن است. از این جهت، وقتی که اپلیکیشن مورد نظر را با همتیمیهایتان به اشتراک میگذارید دیگر نگران اجرا نشدن اپلیکیشن روی سیستم آنها نخواهید بود.البته داکر مزایا و ویژگیهای فوق العاده دیگری نیز دارد که با مطالعه مطلب «داکر چیست؟» میتوانید با آنها آشنا شوید.
Docker Daemon چیست؟
داکر دیمون (Docker Daemon) که با نام Dockerd نیز شناخته میشود یکی از المانهای پایهای در پلتفرم داکر است. این تکنولوژی به عنوان یک سرویس پس زمینه یا Background Service روی کامپیوتر میزبانی عمل کرده و نقش یک واسط بین داکر کلاینت و داکر انجین را ایفا میکند.
از جمله کارکردهای اصلی داکر دیمون، نظارت روی فرایندهای اجرایی کانتینرها و ایجاد، اجرا و مانیتور کردن تسکها است. از آنجایی که داکر دیمون یک تعامل یکپارچه را با سیستم عامل برقرار میکند، فرایند اجرای عملیاتهای مربوط به کانتینرها بسیار بهینه پیش میرود.
Docker Daemon با ایجاد یک نقطه کنترل مرکزی به کاربران این امکان را میدهد تا بدون برخورد با چالشهای عجیب و غریب، اپلیکیشنهایشان را در محیط کانتینر توسعه داده و نگهداری کنند. بنابراین داکر دیمون نقش بسیار مؤثری در سهولت چرخه کاری کانتینرها دارد.
Docker Daemon چه کاری را انجام میدهد؟
داکر دیمون با مدیریت ایمیجها و کانتینرها، نقش بسیار مهمی در اکوسیستم داکر را برعهده دارد. این تکنولوژی در اکوسیستم داکر مانند یک واحد پردازش مرکزی عمل کرده و با لایههای زیرین سیستم عامل ارتباط مستقیمی دارد. پس در نتیجه در فرایند بازبینی و کنترل کانتینرها بسیار حیاتی است.
زمانی که از طریق رابط متنی یا همان CLI با Docker Daemon قصد ایجاد تعامل را دارید، کلاینت با ایجاد یک درخواست HTTP API با Daemon ارتباط برقرار میکند. این درخواستها به صورت مرتب توسط دیمون پردازش و اجرا میشود.
بیشتر درخواستهایی که برای Docker Daemon ارسال میشود مربوط به وظایفی مانند ایجاد کانتینرها، شروع و توقف کانتینرها، مدیریت شبکهسازی و عملیاتهای مربوط به فضای ذخیرهسازی است.
یکی از وظیفههای اصلی Docker CLI (رابط کاربری اصلی داکر) تبدیل کردن دستورات دریافتی به API Callهاست. این کار بدین منظور انجام میشود که Docker Daemon بتواند از درخواستهای کاربران مطلع شود.
بسیاری از توسعه دهندگان برای اینکه تناقضی در بین محیط اجرا و محیط توسعه ایجاد نشود همواره از یک Docker Daemon به صورت محلی روی کامپیوتر خودشان استفاده میکنند. در این حالت توسعه دهندگان مطمئن میشوند که در محیط اجرا تداخلی به وجود نیاید و یکپارچه بودن اپلیکیشنشان تضمین شود.
آشنایی با جایگاه Docker Daemon در اکوسیستم داکر
در تصویر زیر میتوانید با جایگاه Docker CLI و Docker Daemon در معماری کلی داکر آشنا شوید:
همانطور که مشاهده میکنید در این معماری سه عنصر کلیدی وجود دارد که در نهایت فرایند ارتباط برقرار کردن میان Docker CLI و Docker Daemon را تشریح میکند. اگر بخواهیم این سه عنصر را از پایین به بالا بررسی کنیم، میتوانیم به یک توضیح کلی از کارکرد این موارد دست پیدا کنیم:
- در مرحله اول داکر دیمون وجود دارد که به عنوان یک سرویس روی سیستم عامل اجرا میشود. البته این نکته را در نظر بگیرید که Docker Daemon به صورت رسمی تنها در هسته لینوکس موجود است و برای اجرا آن روی ویندوز و مک نیاز است که Docker Desktop را روی سیستم عاملتان نصب کنید.
- در مرحله بعدی داکر دیمون یک REST API ایجاد میکند که امکان ارتباط برقرار کردن با Docker Daemon از طریق Docker CLI را از این قسمت به بعد فراهم میکند.
- در مرحله نهایی، Docker CLI وجود دارد که به صورت کامل به تمام بخشهای اکوسیستم دسترسی دارد. از طریق Docker CLI این امکان برای شما وجود دارد که با Docker Daemon ارتباط برقرار کنید.
جایگاه Docker Daemon در فرایند برقراری ارتباط میان کلاینت و هاست
در تصویر زیر میتوانید جایگاه داکر دیمون در فرایند برقراری ارتباط میان کلاینت و هاست را به صورت کامل مشاهده کنید:
برای اینکه درک خوبی از این تصویر پیدا کنیم نیاز است که از سمت چپ به سمت راست جریان کاری اکوسیستم داکر را توضیح دهیم:
- ابتدا کلاینت (سمت چپ) دستورات مورد نظر خود را اجرا میکند. این کلاینت میتواند در هر سیستم عاملی باشد. این دستورات از طریق خط فرمان یا همان CLI وارد میشود.
- در قدم بعدی ما داکر هاست را داریم که به صورت کلی شامل سروری میشود که داکر دیمون را اجرا میکند. بنابراین این دستورات سمت کلاینت است که منجر به فعال شدن داکر دیمون میشود. در فضای داکر هاست، Docker Daemon با ایمیجها ارتباط مستقیمی داشته و در نهایت از طریق ایمیجها نیز کانتینرها ایجاد میشوند. افرادی که نمیتوانند داکر دیمون را روی سیستم عامل خود داشته باشند معمولا از یک داکر هاست ریموت استفاده میکنند. این یکی از روشهای اصلی برای کاربران سیستم عاملهای ویندوز و مک در جهت ارتباط برقرار کردن با داکر دیمون است.
- در نهایت ما بخش رجیستری را داریم که کارهای مختلفی را انجام میدهد. این موضوع را بدانید که رجیستری میتواند به صورت پیشفرض نصب نشود. شما از طریق رجیستری میتوانید به داکر ایمیجهای مختلفی دسترسی داشته باشید.
در پایان
داکر دیمون در اکوسیستم داکر از جمله مهمترین تکنولوژیهایی است که در فرایند مدیریت، نگهداری و دیپلوی کردن کانتینرها به شما کمک میکند. داشتن درکی پایهای از چیستی Docker Daemon به شما این امکان را میدهد که در ادامه مسیر یادگیری و استفاده از داکر، بتوانید بهتر با آن روبرو شوید.
در این مطلب از وبلاگ همروش سعی کردیم شما را با داکر دیمون آشنا کنیم و همچنین جایگاه و اهمیت آن در اکوسیستم داکر را ارائه دهیم.