داکر چیست؟

داکر چیست؟

نوشته شده توسط: احمد رفیعی
تاریخ انتشار: ۱۵ دی ۱۳۹۷
آخرین بروزرسانی: ۱۷ تیر ۱۴۰۳
زمان مطالعه: 16 دقیقه
۴
(۲)

داکر چیست؟

داکر (Docker) یک پلتفرم متن باز می‌باشد که بر مبنای سیستم‌عامل لینوکس و قابلیت کرنل آن راه‌اندازی شده است. داکر با استفاده از دو قابلیت مهم موجود در کرنل لینوکس به نام‌های Cgroups و Namespase امکانی را فراهم می‌کند که پروسه‌ها و نرم‌افزارها به صورت مجزا در محیط کاملا ایزوله‌ای بر روی کرنل لینوکس راه‌اندازی شود که به این محیط و بسته‌ی ایزوله، کانتینر (Container) می‌گویند. یکی از بزرگترین مزایای داکر سهولت کار با آن بوده و دیگر اینکه می‌توان با استفاده از آن در ویندوز و مکینتاش نیز از کانتینرها و دستورات داکر استفاده کرد. داکر از ابتدای راه‌اندازی توجه کامل به ویندوز و مکنیتاش داشته و تمام امکانات خود را برای این دو تا سیستم‌عامل نیز به صورت کامل فراهم آورده است.

تاریخچه که مهم است بدانیم

در سال ۲۰۱۳ سرویس داکر به صورت رسمی ارائه شد. در همان ابتدا شرکت Redhat که یکی از بزرگترین کمپانی‌های لینوکس و سرویس‌های زیرساخت در دنیا می‌باشد اعلام کرد که پروژه‌های خود را به سمت این سرویس برده و از این پروژه حمایت می‌کند. شرکت بزرگ IBM در سال ۲۰۱۴ اعلام کرد که سرویس‌های خود را به سمت استفاده از داکر خواهد برد. در همین سال شرکت مایکروسافت که اون زمان هنوز رویکرد متن بسته‌ی (Closed Source) خود را داشت، اعلام کرد که نسخه‌ی آینده‌ی ویندوز سرور خود را به سمتی خواهد برد که بتواند از داکر استفاده کند و بتوان در ویندوز به صورت کامل از دستورات داکر استفاده کرد. در سال ۲۰۱۸ شرکت مایکروسافت تمام گواهینامه‌های خود را متن باز (Open Source) کرده و تمام کد‌های آن را در اینترنت قرار داد و با توجه به این اقدام شرکت مایکروسافت یکی از بزرگترین شرکت‌های متن باز دنیا می‌باشد. در حال حاضر ویندوزهای جدید مایکروسافت به صورت کامل امکان استفاده از سرویس داکر را دارند. در سال ۲۰۱۶ داکر نسخه‌ی Enterprise خود را ارائه داد تا قبل از این تنها نسخه‌ی Community آن وجود داشت. در حال هر دو نسخه از این سرویس وجود دارد.

داکر و ویندوز

قبلا این امکان فراهم نبود که سرویس‌ها و خود ویندوز را داخل کانتینرها داشت که در حال حاضر این امکان به صورت کامل فراهم هست و می‌توان همانند سرویس‌های لینوکس سرویس‌های ویندوز را نیز به صورت کانتینر راه‌اندازی کرد و آنها را مدیریت کرد. این امکان به صورت کامل فراهم است که شما هسته‌ی سیستم‌عامل ویندوز را داخل کانتینر داشته باشید و تمام سرویس‌های مد نظر خود را در آن داشته باشید. این امکان به شما کمک می‌کند که تمام امکانات داکر را برای سرویس‌های ویندوزی خود داشته باشید.

مزایای قابل توجه سرویس داکر

*بسیار سبک (کم حجم) و سریع می باشد.

سرویس داکر با استفاده از قابلیت‌های Namespace و CGroups کرنل لینوکس، امکانی را فراهم می‌آورد که با توجه به مشترک بودن کرنل لینوکس میزبان (Docker Host) بین تمام کانتینرها، محیط‌های ایزوله و مستقلی را ایجاد کند تا پروسه‌ها بدون تاثیر بر روی یکدیگر هر کدام به صورت مجزا در کانتینر خود اجرا شود. این امکان به شدت در حجم محصول نهایی موثر بوده و آن را به مراتب کم حجم‌تر و سبک‌تر خواهد کرد. نکته‌ی مهم دیگه اینکه با توجه به قابلیت لایه‌‌ای بودن ایمیج‌ها از لایه‌های تکراری به صورت اشتراکی استفاده می‌شود و این موضوع نیز به شدت در حجم کانتینر‌ها موثر خواهد بود. سبک‌تر شدن کانتینرها باعث می‌شود تا سرعت بیشتری را نیز شاهد باشیم.

*راه‌اندازی کامل سرویس‌های عملیاتی در محیط‌های مختلف.

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

*به راحتی و با سرعت زیادی قابلیت مقیاس‌پذیری (Scalability) دارد.

مقیاس‌پذیری از مهمترین قابلیت‌های داکر و میکروسرویس‌ها می‌باشد. تنها این دلیل به اندازه کافی ایجاب می‌کند تا برای پروژه‌ی خود از سرویس داکر استفاده کنید. با استفاده از داکر به خوبی می‌توان مقیاس‌پذیری را در تمام سطح پروژه‌ی خود پیاده‌سازی کرده و مهمتر از آن اینکه می‌توان به خوبی مقیاس‌پذیری خودکار (Auto Scaling) را ایجاد کرد. با توجه به این موضوع در هنگام اوج درخواست‌ و نیاز اساسی به منابع میزان آنها افزایش یافته و پس از برطرف شدن نیاز آن منابع کاهش یابد و به صورت خودکار جمع‌آوری شود. که این موضوع هم در کیفیت سرویس‌دهی شما بسیار موثر خواهد بود و هم هزینه‌های شما را به شدت کاهش خواهد دادبر این اساس شما می‌توانید کل پروژه را در محیط دیگری آماده نمایید و سپس آن را به محیط عملیاتی خود منتقل کنید. این قابلیت امکان به اشتراک‌گذاری سرویس‌های پیاده‌سازی شده را نیز فراهم می‌آورد

*قابلیت بخش‌بندی (Modularity) و قابل حمل بودن (Portability)

یکی دیگر از قابلیت‌های مهم داکر قابلیت قسمت‌بندی کردن پروژه می‌باشد که می‌توان با استفاده از آن پروژه‌‌ای بزرگ را به بخش‌های کوچک‌تر تقسیم کرد که هر بخش را به صورت مستقل پیاده‌سازی و اجرا کرد. سپس تمام بخش‌های را کنار هم قرار داده و سرویس اصلی را ایجاد نمود. این موضوع در پروژه‌های بزرگ به شدت موثر بوده و سرعت اجرا و پیاده‌سازی آن را افزایش می‌دهد. از دیگر قابلیت‌های مهم قابل حمل بودن می‌باشد

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

نتیجه‌گیری

به نظرم با توجه به تغییر رویکرد شرکت مایکروسافت و تغییراتی که بر روی سرویس‌ها و سیستم‌عامل خود ایجاد کرده و رشد روزافزون سرویس‌ داکر و کلا رویکرد میکروسرویس‌ها این تعامل بسیار مفید و پرثمر خواهد بود. با اضافه شدن این امکان می‌توان به خوبی سرویس‌های ویندوزی را داخل پلتفرم‌های مختلف راه‌اندازی، توسعه و نگهداری کرد. این موضوع خیلی اهمیت داشته و با استفاده از آن می‌توان به خوبی از پلتفرم‌های متعدد موجود استفاده کرد

چه رتبه ای می‌دهید؟

میانگین ۴ / ۵. از مجموع ۲

اولین نفر باش

title sign
معرفی نویسنده
احمد رفیعی
مقالات
2 مقاله توسط این نویسنده
محصولات
3 دوره توسط این نویسنده
احمد رفیعی

احمد رفیعی متخصص و مشاور ارشد لینوکس، زیرساخت و داکر است. از دیگر تجربه های حرفه ای او می توان به مشاور زیرساخت شرکت سنجاق، مدیر زیرساخت شرکت خلاق برهان، متخصص، مشاور حرفه‌ای داکر (Docker)، طراحی و پیاده سازی زیرساخت‌های سازمانی بصورت حرفه‌ای، متخصص و مشاور حرفه‌ای لینوکس، طراح و متخصص پیاده‌سازی سرویس‌ها و پلتفرم‌های محاسباتی ابری (PaaS , IaaS)، طراحی و پیاده‌سازی سرویس‌های CDN بر پایه لینوکس، راه‌اندازی و مدیریت‌ سرویس‌های Firewall بر پایه لینوکس، متخصص Ceph Storage، طراحی و پیاده‌سازی سرویس‌های مانیتورینگ شبکه و زیرساخت، مدرس CDN شرکت زیرساخت ایران اشاره کرد.

title sign
دیدگاه کاربران

    • با سلام و تشکر
      آیا این خصوصیاتی که در مورد داکر ذکر کردید در ارتباط با سیستم عامل اندروید هم وجود دارد
      یعنی سرویس ها و پروژه های ویندوزی را بتوان تحت اندروید نصب و راه اندازی نمود.

      • درود وقت بخیر
        به نقل از مهندس رفیعی
        برای اینکه داکر کار کنید نیاز به کرنل لینوکس دارید
        با تشکر

    • با سلام و تشکر
      آیا این خصوصیاتی که در مورد داکر ذکر کردید در ارتباط با سیستم عامل اندروید هم وجود دارد
      یعنی سرویس ها و پروژه های ویندوزی را بتوان تحت اندروید نصب و راه اندازی نمود.

      • درود وقت بخیر
        به نقل از مهندس رفیعی
        برای اینکه داکر کار کنید نیاز به کرنل لینوکس دارید
        با تشکر

    • بسیار عالی جناب رفیعی عزیز