داکر

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

داکر (Docker) یک پلتفرم متن‌­باز، برای مدیریت کانتینرها (Container) است، که سرعت توسعه، تست و اجرای برنامه­‌ها را افزایش می‌­دهد. این پلتفرم، نرم‌­افزار را در واحدهای استانداردی به نام کانتینر بسته‌­بندی می‌­کند؛ کانتینر داکر شامل تمامی کتابخانه‌­ها، ابزارهای سیستمی، ران‌تایم‌­ها و کدهای لازم برای اجرای برنامه است.

داکر برای اولین‌بار در 20 مارس 2013 با هدف ساده‌­سازی استفاده از کانتینرها منتشر شد. با افزایش سرعت توسعه و تحویل برنامه‌­های کاربردی، این پلتفرم محبوبیت زیادی بدست آورد.

برای اینکه بدانیم داکر چیست، ابتدا بهتر است به دو مبحث به ظاهر نامربوط بپردازیم: کانتینرهای حمل­‌و‌­نقل و ماشین­‌های مجازی

مروری بر تاریخچه کانتینرهای حمل­‌و­نقل!

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

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

استانداردسازی کانتینرهای حمل‌­و­نقل، به آن­ها این امکان را می‌­دهد تا به راحتی از یک مکان به مکان دیگر منتقل شوند. این قابلیت حمل، یکی از ویژگی‌­های کلیدی کانتینرهای داکر نیز به شمار می‌آید که در ادامه بیشتر به توضیح آن می‌پردازیم.

داکر

مجازی‌سازی چیست؟

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

بیشتر بخوانید: مجازی سازی سرور چیست؟

کانتینر(Container) چیست؟

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

چرا از کانتینرها استفاده می­‌کنیم؟

استفاده از کانتینرها می‌تواند به دلایل مختلفی انجام گیرد که در ادامه به چند نمونه از مهم‌ترین آن‌ها می‌پردازیم.

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

کارایی: کانتینرها، سیستم‌عامل میزبان را به اشتراک می­گذراند، که باعث کاهش حجم­ کاری نسبت به یک ماشین مجازی یا چند سیستم‌­عامل می‌­شوند. با کانتینرها، می‌توانید برنامه‌های بیشتری را روی همان سخت‌افزار اجرا کنید؛ بدون اینکه کارایی آن کاهش یابد.

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

جداسازی: کانتینرها یک محیط سبک‌وزن و ایزوله را برای اجرای برنامه‌­ها فراهم می‌­کنند. هر کانتینر، برنامه و وابستگی­‌های آن را محصور و از عدم تداخل آن­ها با یکدیگر اطمینان حاصل می‌کند.

استقرار سریع: کانتینرها را می‌­توان به سرعت ایجاد و راه‌­اندازی کرد. این قابلیت، به ویژه برای برنامه‌هایی که برحسب تقاضا نیاز به استقرار سریع دارند بسیار سودمند است.

داکر چیست و چگونه کار می­‌کند؟

داکر در ساده­‌ترین تعریف، ابزاری برای ایجاد و مدیریت کانتینرها است. برای شناخت داکر باید با دو مفهوم Dockerfile و Docker Image آشنا شویم.

یک Dockerfile مجموعه‌­ای از دستورالعمل­‌ها برای ساخت یک Docker Image را در بر می‌گیرد. Docker Image، به عنوان یک الگو برای ایجاد کانتینرهای داکر عمل می­‌کند.

این الگو شامل تمام کدهای لازم، ران­‌تایم، ابزارهای سیستم، کتابخانه­‌ها و تنظیمات لازم برای اجرای یک برنامه نرم‌­افزاری است. بنابراین، یک Dockerfile برای ساخت یک Docker Image مورد استفاده قرار می‌گیرد؛ سپس این Docker Image، به عنوان الگویی برای ایجاد یک یا چند کانتینر عمل می‌­کند.

تصاویر داکر، پس از ایجاد تغییرناپذیر هستند. اگر نیاز به ایجاد تغییرات در یک برنامه دارید، باید Dockerfile را تغییر داده و تصویری جدید ایجاد کنید. این تغییرناپذیری، تضمین‌کننده ثبات و تکرارپذیری در استقرار برنامه است.

نقش داکر در CI/CD و DevOps

داکر به عنوان پلتفرمی برای توسعه و استقرار برنامه‌­ها، نقش مهمی در روش­‌های ادغام و استقرار مداوم (CI/CD) دارد. یکی از مولفه­‌های کلیدی CI/CD این است که برنامه­‌ها می‌­توانند در محیط­‌های ایزوله ساخته و مورد آزمایش قرار گیرند و اطمینان حاصل شود که هیچ وابستگی غیرمنتظره‌­ای رخ نخواهد داد.

اجزای Docker

داکر از اجزای متنوعی ساخته شده است که چند مورد از مهم‌ترین آن‌ها عبارتند از:

Docker Engine: سرور، CLI و اجزای API لازم برای میزبانی و اجرای کانتینرها را فراهم می‌سازد.

Dockerfile: حاوی دستورالعمل‌­ها برای ساخت Docker Image است.

Docker Image: فایل­‌های حاوی کد و پیکربندی‌­های کانتینر را شامل می‌شود. Image در واقع محفظه‌­ای است که هنوز اجرا نشده است؛ Docker Image یک فایل قابل حمل بوده و شامل یک سری از دستورالعمل‌هاست که مشخص می‌کند کانتینر کدام کامپوننت‌های نرم­‌افزاری را چگونه باید اجرا کند.

Container: نمونه‌ای در حال اجرا از یک image است، که محیطی کاربردی و ایزوله با پتانسیل شبکه و ذخیره‌­سازی فراهم می­‌کند.

DockerHub: مخزنی برای ذخیره‌­سازی imageها، با گزینه­‌های عمومی و خصوصی برای توسعه‌دهندگان است. خطوط CI/CD می­‌توانند از DockerHub به عنوان منبع استفاده کنند.

Docker Desktop: به رابط مدیریت‌­گرافیکی برای کانتینرهای داکر در لینوکس، ویندوز و مک گفته می‌شود.

Docker Compose: فایل YAML برای ساده­‌سازی مدیریت کانتینرهای متعدد در پروژه‌­های بزرگتر را Docker Compose می‌نامند.

برخی باورهای غلط درباره داکر

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

از جمله نگرانی‌­های برخی از کاربران استفاده از خط فرمان (Command Line Interface) داکر است. با این حال، Docker Desktop برای تمامی پلتفرم­‌های اصلی در دسترس بوده و یک رابط گرافیکی کاربرپسند ارائه می­‌دهد.

تصور اشتباه دیگر این است که داکر تنها برای کاربران لینوکس در دسترس قرار می‌گیرد. شکی نیست که داکر لینوکس‌­محور است اما برای ویندوز و مک نیز می‌توان از آن استفاده کرد. کانتینرها روی یک VM ویژه روی این پلتفرم­‌ها اجرا می‌­شوند.

سخن پایانی

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

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

راه­­‌های ارتباط با ما:

arjang.ac.ir

Instagram.com/arjanginstitute

021-41867

نظرات

به عنوان اولین نفر، نظر خود را بنویسید!

متن ساده

  • تگ‌های HTML مجاز نیستند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
  • Web page addresses and email addresses turn into links automatically.