داکر چیست؟ چرا باید از Docker استفاده کنیم؟

داکر چیست؟

دسترسی سریع

برنامه نویسان و توسعه دهندگان به خصوص در حوزه نرم افزار معمولا از داکر استفاده می کنند. Docker یک پلتفرم منبع باز (Open Source) که کمک می کند تا فرایند توسعه و مدیریت پروژه ها با سرعت و سادگی بیشتری انجام شود. این تعریف، بسیار ساده است؛ اگر می خواهید به طور دقیق تر بدانید که داکر چیست، چطور کار می کند و چرا باید از آن استفاده کرد، حتما تا پایان مقاله کار و کمپ همراه ما باشید.

داکر چیست؟

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

این ساختار کمک می کند تا هر محیط به طور جداگانه کار کند و عملکرد آن تاثیری روی بقیه موارد نداشته باشد. در گذشته، این فرایند به شکلی دیگر و با استفاده از ماشین های مجازی (Virtual Machine) انجام می شد. اما در حال حاضر، استفاده از داکر جهت کار با کانتینرها (Container) افزایش داشته و توسعه دهندگان علاقه بیشتری به استفاده از آن دارند.

نحوه عملکرد داکر چیست؟

برا توضیح این بخش، بیایید تا عملکرد شیوه ها و سیستم های قدیمی تر را بررسی کرده و آن را با عملکرد داکر مقایسه کنیم.

در ساختار مرسومی که از داکر قدیمی تر است، ما سه بخش اساسی داریم؛ سخت افزار (Hardware)، هایپر وایزر (Hypervisor) و ماشین مجازی (Virtual Machine). حالا این بخش ها چطور عمل می کنند؟

ماشین های مجازی برای عملکرد خود به سخت افزار نیاز دارند. این سخت افزار به طور ایزوله و کاملا جدا از هم از طریق هایپر وایزر به Virtual Machine داده می شود. به عنوان مثال، اگر ۲ ماشین مجازی داشته باشیم، کل سخت افزار موجود بین آن ها تقسیم می شود.

درست است که ایزوله بودن کمک می کند تا عملکرد ماشین ها در کار یکدیگر اختلال ایجاد نکند؛ اما نحوه تامین سخت افزار در این شیوه موجب افزایش پیچیدگی عملکرد و سنگین شدن اجرا می شود. اینجا، داکر وارد می شود تا جلوی این موارد را بگیرد؛ اما چطور؟

در این فرایند، سخت افزار توسط داکر بین کانتینرها تقسیم می شود. این کار به شکل اشتراکی انجام می شود؛ بنابراین استفاده از سخت افزار به طور بهینه تری انجام می شود و سرعت و سادگی اجرای کار بالا می رود.

تا اینجا، متوجه شدید داکر چیست و چه تفاوتی با ساختار قبل دارد. اما برای بررسی دقیق تر تفاوت ها، ادامه مطلب را مطالعه کنید.

چرا باید از Docker استفاده کنیم؟

تفاوت ماشین مجازی، کانتینر و داکر چیست؟

یکی از تفاوت های این موارد، سرعتی است که آن ها در زمان استفاده ارائه می کنند. ماشین های مجازی سنگین هستند و هر کدام به طور جداگانه، به سخت افزار نیاز دارند. این موضوع، موجب سنگین تر شدن استفاده از آن می شود.

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

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

همچنین اگر زمانی نیاز باشد که توسعه دهندگان مختلف روی یک پروژه کار کنند، باید همگی زیرساخت یکسانی را ایجاد کنند. به عنوان مثال، همه باید یک ورژن خاص از پایتون، PHP یا …  را استفاده کنند. یعنی کل محیط برای کار مشترک نیاز به آماده سازی دارد. اما کار با کانتینر نیاز به آماده سازی محیط ندارد. بنابراین برای کار روی پروژه های مختلف، نیازی به آموزش پایتون یا تغییر در سبک کار فرد نیست.

برای کار با داکر و کانتینرها توسط چند توسعه دهنده مختلف، کافیست داکر فایل پروژه برای هم تیمی ها ارسال شود. آن ها بدون نیاز به تغییر در محیط و زیرساخت ها، می توانند پروژه را برای خود اجرا کرده و روی آن کار کند.

آشنایی با اجزای مختلف در حین کار با داکر

در قسمت قبل، در مورد «داکر فایل» گفتیم. ممکن است بپرسید: داکر فایل چیست؟ این مورد و سایر اصطلاحات را در بخش های پیش رو تعریف می کنیم.

داکر چیست؟ چرا باید از Docker استفاده کنیم؟

داکر فایل (Dockerfile)

کانتینرهای مختلفی که به وسیله یک داکر کنترل می شوند، با استفاده از داکر فایل کار خود را شروع می کنند. حالا نقش داکر فایل در داکر چیست؟

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

Docker image

Docker image فایل های قابل حملی هستند که با استفاده از قابلیت Docker Build از روی اطلاعات داکر فایل ساخته می شود. این داده ها، دستورالعمل هایی هستند که مشخص می کنند Container کدام کامپوننت های نرم افزاری را چطور اجرا کند.

Docker Engine

هسته اصلی و مرکزی داکر، Docker Engine است که در دو نسخه Enterprise و Community ارائه می شود. نسخه Community متن باز و رایگان است؛ اما برای کار با قابلیت های اضافه، باید نسخه Community را با هزینه سالانه ۱۵۰۰ دلار برای هر Node تهیه کرد.

به طور کلی، داکر وظیفه دارد تا یک محیط خاص را به چند بخش تقسیم کند؛ به طوری که در هر بخش عملیات خاصی صورت گیرد. اما تفاوت ماشین مجازی و داکر چیست؟ چرا استفاده از داکر بیشتر توصیه می شود؟

در ماشین های مجازی با استفاده از Hypervisor عملیات شبیه سازی سخت افزار صورت می گیرد. اما در داکر این لایه شبیه ساز حذف شده و کارها در ارتباط مستقیم با هسته سیستم انجام می شود. در واقع داکر Container های مستقلی را ایجاد می کند که بسته های نرم افزاری را در خود جای داده اند. این ساختار کمک می کند تا پروژه های مختلف به صورت مستقل و با سرعت بیشتر قابل اجرا باشند.

۲ پاسخ

  1. از داکر داخل دواپس هم استفاده می کنند درسته؟؟
    اگر بهم کمک کنین ممنون میشم.
    می خوام یه نقشه راه برای خودم بکشم که خیلی به این آگاهی نیاز دارم.

    1. بله درسته از داکر در دواپس هم استفاده میشه
      زیاد خودتون اذیت نکنید برای یادگیری میتونید از مشاوره رایگان کاروکمپ استفاده کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پرداخت به صورت نقدی می باشد
مجموع هزینه ای که پرداخت می کنید: .2.900.000  تومان