Menu

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

Copyright © 2018 Payro.me Powered by WordPress

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

راهنمای داکر برای تازه‌کارها: کلمات کلیدی در Docker

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

مطلب پیش‌رو در ادامه نوشته قبلی با عنوان «راهنمای داکر برای تازه‌کارها: Docker چیست؟» آمده. پیشنهاد می‌کنم بخوانید.

Docker Engine

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

 

Dockerfile

داکر فایل جایی‌ست که دستورالعمل‌های لازم برای ساخت ایمج در آن نوشته می‌شه. اگر نگاهی به داکرفایل‌های موجود بزنید نمونه دستوارتی مثل RUN apt-get install something را خواهید دید؛ دستوراتی که توسط آنها می‌توانیم پکیج‌های‌ لازم برای اجرای نرم‌افزار رو در محیط ایزوله‌ی کانتینر نصب کنیم، پورت اختصاص بدیم و یا دایرکتوری‌ها را تعریف کنیم.

نمونه داکرفایل :

Image

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

Container

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

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

Volume

ولیوم (Volume) را می‌تونیم دیسکی مجازی بدونیم. این بخش از کانتینر، از دیتای کانتینر نگهداری کرده و آن را به اشتراک می‌گذارد(بین کانتینر و هاست یا بین چند کانتینر).
دو نوع اصلی ولیوم داریم:

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

بخوانید:  راهنمای داکر برای تازه‌کارها: تعریف داکرفایل، ساخت ایمج و راه اندازی کانتینر

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

 

Union File System

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

تصویر زیر از داکیومنت داکر استخراج شده.

ساختار Union File System در Docker

ساختار Union File System در داکر

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

بد نیست بدونید به این عمل [COW [Copy On Write می‌گن.

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

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

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

Container، Docker، Dockerfile، داکر، کانتینر

دیدگاه‌ها

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

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

دسته‌ها

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

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

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