Menu

  • خانه
  • برنامه‌نویسی
  • تجربه‌های کاری
  • سبک زندگی
  • پروژه‌ها

Copyright © 2018 Payro.me Powered by WordPress

شیما پیرو، توسعه دهنده نرم افزارنوشته‌ها و تجربیات کاری شیما پیرو توسعه دهنده نرم افزار

راهنمای داکر برای تازه‌کارها: داکر چیست؟

داکر Docker
سپتامبر 21, 2018برنامه‌نویسی

در سال‌های اخیر به کرات اسم «داکر» (Docker) رو شنیده‌ایم. نوشته پیش‌رو راهنمایی ساده و آسان برای آشنایی با داکر و مفاهیم اولیه به همراه تمرین، برای کسانی‌ست که تازه‌‌کار هستند. با ما همراه باشید.

یادآور می‌شوم این مجموعه شامل سه پست خواهد بود و دو نوشته دیگر با عناوین «راهنمای داکر برای تازه‌کارها: کلمات کلیدی در Docker» و «راهنمای داکر برای تازه‌کارها: تعریف داکرفایل، ساخت ایمج و راه اندازی کانتینر» در دسترس‌اند.

داکر چیست؟

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

تفاوت‌های ماشین مجازی و کانتینر

ماشین‌های مجازی با کمک هایپروایزر به صورت انتزاعی یک سرور رو به چند سرور تبدیل ‌می‌کنند. هایپروایزر یک نرم‌افزار، میان‌افزار و یا سخت‌افزار مانیتورینگ ماشین مجازی‌ست که درست بالای ماشین میزبان (Host Machine – سخت‌افزار) قرار گرفته و با کمک ماشین میزبان منابع مورد نیاز ( رم، سی‌پی‌یو و… ) رو بین ماشین‌های مجازی تقسیم ‌می‌کنند.

به این ماشین‌های مجازی اصطلاحا، ماشین مهمان (Guest Machine) هم گفته می‌شه. ماشین مهمان شامل اپلیکیشن و هر آنچه برای اجرای آن لازمه‌ست از مدیریت سیستم و کتابخانه‌های لازم گرفته تا تمام استک سخت‌افزاری شامل سی‌پی‌یو، رم و … که به صورت مجازی در اختیارش قرار داده شده. ماشین‌های مجازی هر کدام سیستم عامل مجزای خودش رو دارند و در لایه بالاتر لایبرری‌ها و سپس اپلیکیشن قرار می‌گیرد.

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

بخوانید:  دیزاین پترن‌ها، Singletone

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

در پایین، از تصاویر خود سایت داکر استفاده شده که به درک بهترمون کمک کنه.

پیکربندی ماشین مجازی

پیکربندی ماشین مجازی

پیکربندی داکر و کانتینر

پیکربندی داکر و کانتینر

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

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

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

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

ت. همچنین با امکان ایجاد کانتینرهای مجزا برای کامپوننت‌های نرم‌افزاری (شکستن اپلیکیشن به ماژول‌های مختلف: ردیس، مای‌اس‌کیو‌ال و …) و نیز توانایی ارتباط آسان بین این کامپوننت‌ها، امکان توسعه مستقلانه آنها در آینده را فراهم می‌کند.

در نوشته‌ی بعدی با عنوان «راهنمای داکر برای تازه‌کارها: کلمات کلیدی داکر» با مفاهیم و کلمات کلیدی مورد استفاده در داکر آشنا می‌شیم.

Container، Docker، VM، داکر، کانتینر، ماشین مجازی

دیدگاه‌ها

آریا ‫مارس 26, 2020 در 12:11 ق.ظ - پاسخ

بسیار عالی
خیلی خوب توضیح دادین
کاش آموزش های دیگه ای هم با همین سبک بذارین

    شیما پیرو ‫آوریل 1, 2020 در 11:38 ق.ظ - پاسخ

    خواهش می‌کنم. خوشحالم به دردتون خورده 🙂

یک پاسخ یا دیدگاه بنویسید لغو پاسخ

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

دسته‌ها

  • برنامه‌نویسی
  • تجربه‌های کاری
  • سبک زندگی

نوشته‌های تازه

  • اتصال SSH به Gitlab با بیش از یک حساب کاربری
  • اهمیت شوخ‌طبعی در محیط کار
  • چطور از شر تسک‌های تو مخی خلاص شویم؟
  • راهنمای داکر برای تازه‌کارها: تعریف داکرفایل، ساخت ایمج و راه اندازی کانتینر
  • راهنمای داکر برای تازه‌کارها: کلمات کلیدی در Docker

نقاشی‌هام

در اینستاگرام دنبال کنید