مقدمه

برنامه نویسان می‌دانند که برای اجرای برنامه‌ها لازم است ابتدا محیط‌ هایی عملیاتی را اجرا کنند. برای نمونه اگر شما برنامه‌نویس زبان php باشید باید یک وب‌سرور روی سیستم خود نصب کنید و چند سرور و ماژول دیگر نیز برای برنامه‌نویسی خود نیاز دارید. درصورتی‌که فرد دیگری بخواهد برنامه‌ای که توسط شما نوشته‌شده است را تغییر و توسعه دهد نیز باید این برنامه‌ها و سرورها را بر روی سیستم خود نصب کند. اگر همچنان برای شما سؤال است که دقیقاً داکر Docker چیست ؟ می‌توانید با مطالعه‌ی این مقاله با مفهوم داکر بیشتر آشنا شوید و هر آنچه راجع به آن نیاز دارید را بیاموزید.

Docker (داکر) بستری است که این قابلیت را در اختیار شما قرار می‌دهد تا با ایجاد محفظه‌هایی بتوانید تمام برنامه‌های لازم برای توسعه‌ی نرم‌افزار خود را در این محیط قرار دهید و در هر جا که لازم است از آن‌ها استفاده نمایید.

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

Docker یا داکر چیست ؟

what-is-docker

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

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

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

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

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

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

Docker امروزه چنان محبوب است که از آن به‌عنوان اصلی‌ترین کانتینر موجود استفاده می‌شود، اما اولین فناوری‌های مربوط به کانتینرها برمی‌گردد به سال‌ها، و حتی می‌توان گفت دهه‌ها، قبل از انتشار Docker در سال ۲۰۱۳. مهم‌ترین آن‌ها در سال ۲۰۰۸، (LXC (Linux Containers بود که در هسته‌ی لینوکس پیاده‌سازی شد و مجازی‌سازی را برای یک نمونه‌ی واحد از لینوکس کاملاً امکان‌پذیر کرد. اما داکر به‌مرور قابلیت‌هایی را ارائه داد که توانست از رقبایش پیشی بگیرد، از جمله:

  • قابلیت نصب و اجرای آسان: درحالی‌که کانتینرهای LXC اغلب به پیکربندی‌های خاص دستگاه اشاره می‌کنند، کانتینرهای Docker بدون تغییر در هر دسکتاپ، مرکز داده و محیط ابری اجرا می‌شوند.
  • حجم سبک‌تر و به‌روزرسانی‌های بهتر: با استفاده از LXC می‌توان چندین فرآیند را درون یک کانتینر واحد ترکیب کرد. با کانتینرهای داکر فقط در یک مجموعه می‌توان یک فرآیند را اجرا کرد. این امر باعث می‌شود تا درحالی‌که یکی از قسمت‌های آن برای به‌روزرسانی یا تعمیر حذف شده است، بتوانید برنامه‌ای را اجرا کنید که بتواند همچنان کار کند.
  • ایجاد خودکار کانتینرها: Docker می‌تواند به‌طور خودکار یک کانتینر را بر اساس کد منبع برنامه بسازد.
  • نسخه‌سازی کانتینر: Docker می‌تواند نسخه‌های یک ایمیج کانتینر را ردیابی کند، به نسخه‌های قبلی برگردد، و ردیابی کند که چه کسی آن نسخه را ساخته و چگونه این کار را انجام داده است.
  • استفاده‌ی مجدد از کانتینرها: کانتینرهای موجود می‌توانند به‌عنوان ایمیج پایه استفاده شوند، اساساً مانند قالب‌هایی برای ساخت کانتینرهای جدید.

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

عملکرد داکر Docker چیست ؟

داکر-چیست

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

ابزارهای کانتینر، ازجمله داکر، یک مدل استقرار مبتنی بر ایمیج را ارائه می‌دهد. این امر باعث می‌شود که بتوان یک برنامه یا مجموعه خدمات را با تمام وابستگی‌های آن‌ها در محیط‌های مختلف به اشتراک گذاشت. Docker همچنین استقرار برنامه‌ی کاربردی را با استفاده از برنامه (یا مجموعه‌هایی از فرآیندهای ترکیبی که یک برنامه را تشکیل می‌دهند) در داخل این محفظه به‌صورت خودکار انجام می‌دهد.

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

جمع‌بندی

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