معرفی
Azure Container Registry یک رجیستری کانتینر خصوصی در پلتفرم Azure است. میتوانید برنامهتان را محفظهای کنید و آن را به رجیستری کانتینر Azure فشار دهید. سرویسهای مبتنی بر کانتینر مانند Azure Container Instance، Azure WebApp، Azure Kubernetes Service و Azure Service Fabric میتوانند تصویر را بکشند و اجرا کنند. همچنین میتوانید تصویر را از هر نقطهای خارج از پلتفرم Azure مانند داخل محل یا سایر ابرهای فروشنده بکشید و آن را اجرا کنید. تصاویر ذخیره شده در Azure Container Registry به صورت عمومی در دسترس نیستند و شما باید به کاربرانی که باید آن را بکشند و استفاده کنند اجازه صریح بدهید.
شما می توانید یک برنامه .NET Core ایجاد کنید، آن را کانتینری کنید و با استفاده از ویژوال استودیو به رجیستری کانتینر Azure فشار دهید. با این حال، همه برنامهها با استفاده از Microsoft Technologies توسعه نمییابند و Azure Container Registry میتواند تصاویر کانتینرها را برای برنامههای ساخته شده بر روی فناوریهای غیر مایکروسافت مانند جاوا، پایتون و غیره نگه دارد. در چنین مواردی میتوانید از دستورات Docker برای کانتینری کردن برنامه استفاده کنید و آن را به سمت رجیستری کانتینر لاجورد.
در این مقاله ما یک برنامه A.NET Core را کانتینری کرده و آن را به رجیستری کانتینر Azure منتقل می کنیم. در زیر پیوندهای مقالات قبلی این مجموعه آمده است.
- ایجاد یک رجیستری کانتینر Azure
- با استفاده از Visual Studio یک برنامه .NET Core را به رجیستری کانتینر Azure وارد کنید
پیش نیازها
قبل از امتحان کردن مراحل نشان داده شده در این مقاله، باید این پیش نیازهای زیر را آماده کنید.
- شما باید یک Azure Container Registry ایجاد می کردید
- شما باید یک Dockerfile ایجاد می کردید تا تصویر را محفظه بندی کنید
- شما باید Dockerfile را در همان پوشه ای که فایل راه حل (.sln) برای برنامه .NET Core موجود است نگه می داشتید.
- شما باید Docker Desktop را روی سیستم خود نصب کرده باشید
Containerize برنامه NET Core
هنگامی که برنامه خود را توسعه دادید و پیش نیازهای ذکر شده در بالا را برآورده کردید، خط فرمان یا خط فرمان PowerShell را باز کنید و به پوشه ای که Dockerfile را در آن نگهداری کرده اید بروید. دستور زیر را برای ساختن تصویر Docker برای برنامه اجرا کنید.
- docker build -t mydemoapp:demo .
حالا اجازه دهید بررسی کنیم که آیا تصویر با استفاده از دستور زیر ایجاد شده است یا خیر.
- docker image ls
![](http://pezhvak24.ir/dl/codenevis/firstcode/article/containerize-net-core-application-and-push-it-to-azure-container-registry-using2/Images/1.jpg)
با استفاده از دستور زیر می توانید تصویر docker را به صورت محلی به عنوان یک کانتینر اجرا کنید. شما در حال انتشار برنامه در پورت 80 در کانتینر و نگاشت آن به پورت محلی 8080 در سیستم خود هستید.
- docker run –publish 8080:80 –detach –name mydemoapp mydemoapp:demo