با یک درس جدید از سری آموزش رایگان داکر و موضوعات مربوط به Containerized کردن اپلیکیشن ها در Net Core. در خدمت شما هستیم. امیدواریم که تا به اینجا یک کار از این آموزش لذت برده باشید و مشتاق ادامه کار باشید. در این قسمت قرار است در رابطه با Container ها و Image ها و Registry ها در داکر و موضوعات مربوط به هر کدام به طور مفصل تری صحبت کنیم.
تا به اینجای کار دانسته ایم که زمانی که از یک داکر استفاده میکنیم در واقع یک اپلیکیشن و یا سرویس به همراه تمامی Dependency های آن در قالب یک Image Container بستهبندی و یا Package میشوند. در واقع یک Image یک نمایش Static از یک اپلیکیشن و یا سرویس به همراه تمامی Dependency ها و پیکربندی های منحصر به فرد خود است.
به منظور اجرا کردن یک اپلیکیشن و یا یک سرویس، پس از ایجاد کردن یک Container Image می بایست آن Image را اصطلاحاً Instantiate و یا نمونه سازی کرده و یک Container جدید ایجاد کنیم. این Container بر روی Docker Host و یا سیستمی که میزبانی داکر را به عهده دارد اجرا خواهد شد. Container ها در ابتدا در Development Environment و یا سیستم محلی برنامهنویس تست خواهند شد. ضمنا ذکر این نکته ضروری است که برنامه نویسان می بایستی Image ها را در یک رجیستری ذخیره کنند. در واقع یک رجیستری شبیه به یک کتابخانه از Image ها عمل می کند و به منظور deploy کردن برنامه به Production Orchestrator ها به آن نیاز داریم. داکر یک Public Registry را با استفاده از Docker Hub مدیریت می کند. دیگر کمپانیها نیز رجیستری های خاص خود را به منظور فراهم کردن مجموعه ای از Image ها در اختیار ما قرار می دهند. برای مثال Azure Container Registry یکی از این نمونهها است. علاوه بر این موضوع بسیاری از شرکتهای بزرگ می توانند رجیستری های Private خود را داشته باشند و Docker Image های منحصر به فرد خود را مدیریت کنند.
تصویری که در قسمت زیر مشاهده می کنید نحوه ارتباط Image ها و رجیستری ها و دیگر اجزای تشکیل دهنده داکر را نشان می دهد. علاوه بر این همان طور که در تصویر زیر مشاهده می شود، چندین رجیستری توسط کمپانی های مختلف ارائه شده است.
به بیان ساده یک Registry شبیه به قفسه کتاب عمل می کند که در آن Image ها ذخیره شده و میتوانند به منظور ایجاد کردن Container ها و اجرا کردن سرویس ها و اپلیکیشن ها، مورد استفاده قرار بگیرند. رجیستری های خصوصی و عمومی بر روی Cloud و یا on-premise نیز وجود دارند. Docker Hub یک Public Registry است که توسط کمپانی داکر مدیریت می شود. علاوه بر این Docker Trusted Registry نیز یکی دیگر از رجیستری هایی است که در سطح تجاری از آن استفاده میشود. علاوه بر این موضوع Azure نیز با ارائه دادن Azure Container Registry به جمع ارائه دهندگان رجستری ها پا نهاده است. AWS و Google نیز جزء دیگر کمپانی هایی هستند که Container Registry در اختیار ما قرار میدهند.
با استفاده از رجیستری ها شما می توانید Image ها را به صورت اجزای تشکیل دهنده غیر قابل تغییر و استاتیک برنامهها ذخیره کنید. یک Image شامل تمامی dependency ها و دیگر فریم ورک های مربوط به اجرا شدن برنامه می باشد. علاوه بر این موضوع امکان ورژن بندی کردن Image ها و سپس deploy کردن آنها در Environment های مختلف و در نهایت فراهم کردن یک deployment unit یک شکل و Consistent نیز وجود دارد.
رجیستری هایی که به صورت Private و یا خصوصی کار می کنند که یا در Cloud و یا On-premise قرار میگیرند در شرایط زیر مورد استفاده قرار خواهند گرفت:
منبع: وبسایت پرووید