قبلا به آموزش نصب داکر پرداختیم, در این پست به اصطلاحات و تعاریفی می پردازیم که قبل از آنکه بطور جدی در حوزه ی Docker فعالیت کنید ، باید با آنها آشنا شوید :
Container image ( ایمیج کانتینر ) :
بسته ای است که تمام احتیاجات و اطلاعات لازم برای ایجاد یک کانتینر را دارد. یک image تمام موارد ضروری ( مانند قالب ها ) و پیکر بندیهای به کارگیری و اجرایی که توسط یک کانتینر runtime مورد استفاده قرار می گیرد ، را شامل می شود. معمولاً یک ایمیج از چند ایمیج پایه ای که به صورت لایه لایه بر روی هم قرار گرفته اند و filesystem کانتینر را تشکیل می دهند ، ساخته می شود. این ایمیجی پس از ساخته شدن ، غیر قابل تغییر است. و نمی توان تغییری در ان ایجاد کرد.
Dockerfile ( فایل داکر ) :
یک فایل متنی حاوی دستورات لازم برای ساخت ایمیج Docker است. این فایل شبیه به فایل متنی Batch است . اولین خط آن بیان کننده ی ایمیج پایه ای است که فایل با آن شروع می شود. در ادامه دستورات لازم برای نصب برنامه های لازم ، کپی کردن فایلها و غیره بیان می شود .تا اینکه در انتها به محیط کاری مورد نیاز خود دست پیدا کنید.
Build (ساخت) :
به معنای ساختن یک ایمیج کانتینر بر اساس اطلاعات و محتوای موجود در فایل داکر و فایلهای اضافی موجود در فولدری است. که ایمیج کانتینر در آن ساخته شده است . شما می توانید ایمیج را با دستور docker build نیز بسازید.
Container ( کانتینر) :
نمونه ای از یک ایمیج Docker است. کانتینر نمونه ای از اجرای یک اپلیکیشن ، فرایند و یا یک سرویس را به نمایش می گذارد. یک کانتینر شامل محتوای ایمیج Docker ، یک محیط اجرایی و مجموعه ی استاندارد از دستورات است . هنگام توسعه ی یک سرویس ، در حقیقت ، شما از روی یک ایمیج چند کانتینر می سازید. یا یک batch job می تواند از روی یک ایمیج چند کانتینر بسازد و به هر نمونه یک ویژگی مشخص را اختصاص دهد.
Volumes ( برچسب ) :
فایل سیستمی قابل نگارشی است که کانتینر می تواند از آن استفاده کند . تصاویر (Images) فایلهای read-only هستند . اما در بیشتر برنامه ها لازم است که چیزی در فایل سیستمی نوشته شود ، Volumes یک لایه ی قابل نگارش بر روی ایمیج کانتینر اضافه می کند. بدین ترتیب برنامه ها می توانند به یک فایل سیستمی قابل نوشتن دسترسی داشته باشند. آن برنامه هاتشخیص نمی دهد که به یک فایل سیستمی چند لایه دسترسی دارد. از نظر آن برنامه این یک فایل سیستمی معمولی است. Volume در هاست سیستم باقی می ماند و توسط Docker کنترل می شود.
Tag ( عنوان ) :
عنوان یا نشانه ای که به تصاویر داده می شود. و به وسیله ی آن می توان تصاویر مختلف و یا نسخه های مختلف یک ایمیج را ( بر حسب شماره ی نسخه و یا محیط هدف ) از یکدیگر تشخیص داد.
Multi-stage Build (ساخت چند مرحله ای ( :
در آینده ، در نسخه های Docker 17.05 و بالاتر ، می توان با کمک multi stage build حجم ایمیج نهایی را کاهش داد. توضیح خلاصه ی این مطلب به این شکل است که با استفاده از multi-stage build می توانید مثلاً از یک ایمیج base که حاوی SDK است. برای کامپایل کردن و انتشار اپلیکیشن استفاده کنید و سپس با استفاده از این فولدر ساخته شده. و ایمیج base حاوی runtime ، یک ایمیج نهایی بسیار کوچکتر تهیه کنید.
Repository(Repo) ( مخزن ) :
مجموعه ای از تصاویر Docker مربوط به یکدیگر که با یک عنوان که نشان دهنده ی نسخه ی این تصاویر است ، نامگذاری و مشخص شده اند. برخی از مخزن ها حاوی گونه های مختلف یک ایمیج خاص هستند ، مثلاً ایمیج حاوی SDKs ( سنگین تر ) ، ایمیج حاوی runtime-only (سبک تر ) و … . می توان این گونه های مختلف را نیز با لیبل از یکدیگر مشخص کرد. ممکن است یک مخزن حاوی انواع مختلف پلت فرم مانند ایمیج Linux و ایمیج Windows باشد.
Registry ( ثبت تنظیمات ) :
سرویسی است که امکان دسترسی به مخزن ها را فراهم می کند. رجیستری پیش فرض برای بیشتر تصاویر عمومی Docker Hub نام دارد ( این رجیستری به عنوان یک سازمان در مالکیت Docker قرار دارد.) معمولاً یک رجیستری مخازن متعلق به چند گروه را در بر می گیرد. غالباً هر شرکت یک سرور رجیستری خصوصی برای حفظ و نگهداری تصاویری که خود تهیه می کند ، دارد. Azure Container Registry نمونه ای از این نوع رجیستری های خصوصی است.
Multi-arch image (تصاویر چند سازه ای ) :
چند سازه ای بودن ، مشخصه ای است که انتخاب یک ایمیج مناسب را بر اساس پلت فرمی که Docker در آن اجرا می شود ، ساده می کند ، به عنوان مثال وقتی یک Dockerfile ایمیج FROM microsoft/dotnet:2.1-sdk را از رجیستری درخواست می کند ، بسته به نوع سیستم عامل و نسخه ی Docker مربوطه ، این ایمیج را از ۲.۱-sdk-nanoserver-1709, 2.1-sdk-nanoserver-1803 و یا ۲.۱-sdk-alpine دریافت می کند.
Docker Hub :
یک رجیستری عمومی برای آپلود و کار با تصاویر است. Docker Hub امکانات و خدمات هاستینگ Docker image و رجیستری عمومی یا خصوصی را برای کاربر فراهم می کند ، برنامه های trigger و وب هوک می سازد و موجبات لازم برای هماهنگی و همکاری با GitHub و Bitbucket را فراهم می کند.
Azure Container Registry :
یک منبع عمومی برای کار با ایمیج Docker و اجزای سازنده ی آن در Azure است. این رجیستری از نظر ساختار شبیه به امکانات و اجزای مورد استفاده در Azure است و به وسیله ی آن ، شما می توانید کنترل دسترسیهای خود را به دست گرفته و از گروهها و مجوزهای دایرکتوری فعال خود در Azure استفاده کنید.
Docker Trusted Registry(DTR) :
یک رجیستری از خود Docker است که می توان آن را بر روی سرور مجازی یا سرور اختصاصی خود نصب کرد ، بدین ترتیب این رجیستری می تواند در درون شبکه و دیتاسنتر سازمان باقی بماند. این رجیستری برای ایمیج های خصوصی که باید در داخل موسسه حفظ و نگهداری شوند ، مناسب است. Docker Trusted Registry یکی از محصولات datacenter Docker به حساب می آید.
Community Edition (CE) :
CE یک ابزار تکمیلی در Windows و macOS است که با استفاده از آن می توان کانتینرها را به صورت local ایجاد ، اجرا و ارزیابی کرد. Docker CE در ویندوز یک محیط تکمیلی ( اضافی ) برای کانتینرهای Linux و ویندوز فراهم می کند. هاست Docker Linux بر روی ویندوز بر پایه ی یک ماشین مجازی Hyper-V ساخته شده است. هاست کانتینرهای ویندوز مستقیماً بر پایه ی ویندوز ساخته می شود. Docker CEبرای Mac OS بر پایه ی قالب Apple Hypervisor و xhyye Hypervisor که یک ماشین مجازی هاست Linux Docker بر روی mac OS X ایجاد می کنند ، ساخته می شود. Docker CE برای ویندوز و Mac جایگزین جعبه ابزار Docker شده است که بر پایه ی Oracle VirtualBox ساخته می شد .
Docker Enterprise Edition ( EE ) :
نسخه ای از ابزار Docker در مقیاس و اندازه ی یک شرکت است که برای تکمیل Linux و ویندوز ساخته شده است.
Compose :
یک فرمان خطی و فایل با فرمت YAML دارای فراداده (metadata) است که برای تعریف و اجرای اپلیکیشنهای چند کانتینری استفاده می شود. یک اپلیکیشن مجزا را می توان بر اساس چند ایمیج با یک یا چند فایل yml که می توانند بسته به نوع محیط بر روی متغیرها بازنویسی شوند ، تعریف کرد. پس از آنکه تعریفهای مورد نظر خود را ایجاد کردید. می توانید کل اپلیکیشن چند کانتینری را با یک دستور (docker compose up ) که به ازای هر ایمیج یک کانتینر بر روی هاست Docker می سازد ، اجرا کنید.
Cluster (گروه ) :
مجموعه ای از هاست ها و سرور های Docker است که به صورت یک هاست مجازی Docker منفرد دیده می شود. بنابراین می توان اپلیکیشن را به صورت خدماتی که در تمامی هاست هایی که در گروه هستند ، ارائه می شود ، گسترش و ارتقاء داد. گروههای Docker را می توان با Kubernetes, Azure Service Fabric, Docker Swarm و Mesosphere DC/OS ایجاد کرد.
Orchestrator ( هماهنگ کننده ) :
ابزاری است که با کمک آن می توان گروهها و هاست های Docker را آسانتر کنترل کرد. هماهنگ کننده ها شما را قادر می سازند که از طریق یک فرمان خطی واسطه ای(CLI) و یا یک UI گرافیکی ، تصاویر ، کانتینرها و هاست های گروههای Docker خود را کنترل کنید. شما می توانید پیکربندی ها ، شبکه های کانتینر ، تعادل حجم بار ، تشخیص خودکار خدمات ، میزان دسترسی بالا ، پیکربندی هاست Docker و سایر موارد را نیز کنترل کنید. هماهنگ کننده مسئول اجرا ، توزیع ، محاسبه و ترمیم بار کاری میان مجموعه ی گره ها (nods) است. معمولاً هماهنگ کننده ها همان محصولاتی هستند که زیرساخت گروهها را تشکیل می دهند . در میان محصولات عرضه شده در بازار ، Kubernetes و Azure Service Fabric نمونه هایی از این هماهنگ کننده ها