داکر چیست؟

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/05/27
  • تعداد بازدید: 259

داکر یک ابزار متن باز است که عملیات پیاده سازی نرم افزار ها را در داخل یک container یا محفظه میسر میسازد.راحت ترین راه برای درک عملکرد داکر مقایسه آن با کانتینر های باری بر روی کشتی ها است. در گذشته شرکت های حمل و نقل با مشکلات زیر رو به رو بودند:

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

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

داکر چه تفاوتی با مجازی سازی دارد؟
در گذشته، از ماشین های مجازی برای این کار استفاده می شد. مشکل اصلی این بود که ماشین مجازی  یک لایه سیستم عامل مجزا بر روی سیستم عامل میزبان ایجاد و ذخایر اضافه و مجزایی از میزبان را به خود اختصاص میداد. که باعث کند شدن و سنگین شدن سیستم میزبان میشد. داکر تمام این مشکلات رابرطرف کرد و به سادگی با استفاده از kernel سیستم عامل میزبان در تمام container های اجرایی و به عنوان یک پردازش مجزا در کنار دیگر پردازش های سسیستم عامل قرار گرفت.

دیاگرام زیر مدل عملکرد داکر را به شما نشان خواهد داد.

 

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

از مزایای داکر می توان به موارد زیر اشاره کرد:

  • روند توسعه سریعتر
  • کپسوله سازی محیط توسعه 
  • تشابه رفتاری در dev/stage/prod
  • نظارت آسان و واضح
  • توسعه پذیری و مقیاس پذیری بالا