تشغيل حاوية مُخصصة في Azure

توفر Azure App Service مكدسات تطبيقات محددة مسبقا على Windows مثل ASP.NET أو Node.js، تعمل على IIS. ومع ذلك، فإن مجموعة التطبيقات التي تم تكوينها مسبقاً قفل نظام التشغيل ومنع الوصول منخفض المستوى. لا تحتوي حاويات Windows المخصصة على هذه القيود، وتسمح للمطورين بتخصيص الحاويات بالكامل ومنح التطبيقات المعبأة في حاويات وصولاً كاملاً إلى دوال Windows.

يُوضّح هذا التشغيل السريع كيفية نشر تطبيق ASP.NET، في صورة Windows، إلى Docker Hub من Visual Studio. يُمكنك تشغيل التطبيق في حاوية مُخصصة في خدمة Azure App Service.

للتشغيل السريع، تحتاج إلى:

  • تثبيت Docker لنظام التشغيل Windows
  • قم بتبديل Docker لتشغيل حاويات Windows
  • تثبيت Visual Studio 2022 باستخدام ASP.NET وتطوير الويب وأحجام عمل التطوير الخاصة بـ Azure. في Visual Studio 2022 Community، تأكد من تحديد مكون قوالب المشروع والعنصر .NET Framework مع حمل عمل تطوير ASP.NET والويب. إذا قمت بتثبيت Visual Studio 2022 بالفعل:
    • ثبّت آخر التحديثات في Visual Studio بتحديد تعليمات>التحقق من وجود تحديثات.
    • أضِف أحمال العمل في Visual Studio من خلال تحديد "Tools">"Get Tools and Features".

1 - إنشاء تطبيق ويب ASP.NET

قم بإنشاء تطبيق ويب ASP.NET من خلال اتباع الخطوات التالية:

  1. افتح Visual Studio، ثم حدد "Create a new project".

  2. في إنشاء مشروع جديد، ابحث عن واختر ASP.NET Web Application (.NET Framework) للغة C#، ثم حدد التالي.

    لقطة شاشة للمربع إنشاء مشروع جديد.

  3. في تكوين مشروعك الجديد، قم بتسمية التطبيق myFirstAzureWebApp، ثم حدد إنشاء. ضمن إطار العمل، حدد .NET Framework 4.8 ثم حدد إنشاء.

    لقطة شاشة لمشروع تكوين تطبيق الويب.

  4. يُمكنك نشر أي نوع من تطبيقات الويب ASP.NET إلى Azure. لهذا التشغيل السريع، اختر قالب MVC.

  5. ضمن المصادقة، حدد بلا. ضمن خيارات متقدمة، حدد دعم Docker وقم بإلغاء تحديد تكوين ل HTTPS. حدد إنشاء.

    لقطة شاشة للمربع إنشاء تطبيق ويب ASP.NET.

  6. إذا لم يتم فتح ملف "Dockerfile" تلقائياً، افتحه من "Solution Explorer".

  7. تحتاج إلى استخدام صورة أصل معتمدة. قم بتغيير الصورة الأصل عن طريق استبدال سطر FROM الذي يحتوي التعليمات البرمجية التالية واحفظ الملف:

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. من قائمة Visual Studio، حدد تصحيح>بدء بدون تصحيح لتشغيل تطبيق الويب محلياً.

    لقطة شاشة للتطبيق قيد التشغيل محلياً.

نشر في Azure Container Registry

  1. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع myfirstazurewebapp وحدد نشر.

  2. في Target، حدد Docker Container Registry، ثم حدد Next.

    لقطة شاشة لشاشة Select Docker Container Registry.

  3. في Specific Target، حدد Azure Container Registry، ثم حدد Next.

     لقطة شاشة لصفحة النشر من نظرة عامة على المشروع.

  4. في Publish، تأكد من اختيار الاشتراك الصحيح. في سجلات الحاوية+، حدد الزر لإنشاء Azure Container Registry جديد.

    لقطة شاشة لإنشاء سجل حاوية Azure جديدة.

  5. في Publish، تأكد من اختيار الاشتراك الصحيح. ضمن مجموعة الموارد، حدد جديد واكتب myResourceGroup للاسم، وحدد موافق. بالنسبة لـ" SKU"، حدد " Basic". ضمن موقع السجل، حدد موقعا للسجل ثم حدد إنشاء.

    لقطة شاشة لتفاصيل سجل حاوية Azure.

  6. في Publish، ضمن Container Registry، حدد السجل الذي أنشأته، ثم حدد Finish.

    لقطة شاشة لتحديد سجل حاوية Azure الموجودة.

    انتظر حتى يكتمل التوزيع. تعرض صفحة Publish الآن اسم المستودع لاستخدامه لاحقاً. حدد زر النسخ لنسخ اسم المستودع لاحقا.

    لقطة شاشة تعرض اسم المستودع.

3 - إنشاء حاوية مخصصة ل Windows

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. اختر "Create a resource" من الزاوية العلوية اليسرى من مدخل Microsoft Azure.

  3. ضمن "Popular services"، حدد "Create" ضمن "Web App".

  4. في "Create Web App"، اختر اشتراكك ومجموعة موارد. يُمكنك إنشاء مجموعة موارد جديدة إذا لزِم الأمر.

  5. قم بتوفير اسم تطبيق، مثل "win-container-demo". اختر "Docker Container" في "Publish" و"Windows" في "Operating System". حدد "Next: Docker" للمتابعة.

    لقطة شاشة لإنشاء تطبيق ويب للحاويات.

  6. بالنسبة لـ "Image Source"، اختر "Docker Hub" ولـ "Image and tag"، أدخِل اسم المستودع الذي نسخته في "Publish to Docker Hub".

     لقطة شاشة لتهيئة تطبيق الويب الخاص بك
للحاويات.

    إذا كانت لديك صورة مُخصصة في مكان آخر لتطبيق الويب الخاص بك، كما هو الحال في Azure Container Registry أو في أي مستودع خاص آخر، يُمكنك تكوينها هنا. حدد «مراجعة + إنشاء» للمتابعة.

  7. تحقق من جميع التفاصيل ثم حدد إنشاء وانتظر حتى يقوم Azure بإنشاء الموارد المطلوبة. لقطة شاشة لإنشاء تطبيق ويب للحاويات.

4 - استعراض للوصول إلى الحاوية المخصصة

عند اكتمال عملية Azure، يتم عرض مربع إعلام.

لقطة شاشة للنشر نجحت.

  1. انقر فوق الانتقال إلى المورد.

  2. في النظرة العامة على هذا المورد، اتبع الارتباط الموجود بجوار URL.

تفتح صفحة مستعرض جديدة في الصفحة التالية:

لقطة شاشة لبدء حاوية Windows المخصصة.

انتظر بضع دقائق وحاول مرة أخرى، حتى تُعرض الصفحة الرئيسية الافتراضية لـ ASP.NET:

لقطة شاشة لحاوية Windows المخصصة قيد التشغيل.

تهانينا! تقوم بتشغيل حاوية Windows المُخصصة الأولى لك في خدمة Azure App Service.

مراجعة سجلات بدء تشغيل الحاوية

قد يستغرق تحميل حاوية Windows بعض الوقت. لمشاهدة التقدم، انتقل إلى عنوان URL التالي عن طريق استبدال < app_name > باسم التطبيق خاصتك.

https://<app_name>.scm.azurewebsites.net/api/logstream

تبدو السجلات المتدفقة كما يلي:

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

6 - التحديث محلياً وإعادة النشر

  1. في Visual Studio، في "Solution Explorer"، افتح "Views">"Home">"Index.cshtm".

  2. ابحث عن علامة <div class="jumbotron"> HTML بالقرب من الجزء العلوي، واستبدل العنصر بأكمله بالتعليمة البرمجية التالية:

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. لإعادة النشر إلى Azure، انقر بزر الماوس الأيمن فوق مشروع myfirstazurewebapp في "Solution Explorer" واختر "Publish".

  4. في صفحة النشر، حدد "Publish" وانتظر حتى يكتمل النشر.

  5. لإخبار خدمة App Service بسحب الصورة الجديدة من Docker Hub، أعِد تشغيل التطبيق. عند العودة إلى صفحة التطبيق في المدخل، انقر فوق "Restart">"Yes".

     لقطة شاشة لنظرة عامة على خدمة التطبيق مع تمييز زر إعادة التشغيل.

استعرض للوصول إلى الحاوية المخصصة مرة أخرى. بينما تُحدَّث صفحة الويب، يجب أن يعود التطبيق إلى صفحة "بدء التشغيل" في البداية، ثم يعرض صفحة الويب المُحدَّثة مرة أخرى بعد مرور بضع دقائق.

لقطة شاشة لتطبيق الويب المحدث في Azure.

7. تنظيف الموارد

في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تكن تتوقع أن تحتاج إلى هذه الموارد في المستقبل، يمكنك حذفها عن طريق حذف مجموعة الموارد.

من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".

في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.

الخطوات التالية

توفّر خدمة Azure App على Linux مجوعة تطبيقات مُحددة مسبقاً على Linux مع دعم للغات مثل .NET، وPHP، وNode.js وغيرها. يُمكنك أيضاً استخدام صورة Docker مُخصصة لتشغيل تطبيق الويب الخاص بك على مكدس تطبيق غير مُحدد بالفعل في Azure. يُوضّح هذا التشغيل السريع لك كيفية نشر إحدى الصور من خدمة Azure Container Registry (ACR) إلى خدمة App Service.

إشعار

للحصول على معلومات حول تشغيل التطبيقات المعبأة في حاويات في بيئة بلا خادم، يرجى الاطلاع على تطبيقات الحاويات.

للتشغيل السريع، تحتاج إلى:

إنشاء سجل حاويات

يستخدم هذا التشغيل السريع Azure Container Registry كسجل الاختيار. لديك الحرية في استخدام السجلات الأخرى، إلا إن الخطوات قد تختلف قليلاً.

قم بإنشاء سجل الحاويات من خلال اتباع الإرشادات في التشغيل السريع: إنشاء سجل حاوية خاصة باستخدام مدخل Microsoft Azure.

هام

تأكّد من تعيين الخيار "Admin User" إلى "Enable" عند إنشائك Azure container registry. يُمكنك كذلك تعيينه من قسم "Access keys" في صفحة السجل الخاص بك في مدخل Microsoft Azure. هذا الإعداد مطلوب للوصول إلى خدمة App Service. للحصول على الهوية المدارة، راجع نشر من البرنامج التعليمي ACR.

تسجيل الدخول.

  1. أطلِق Visual Studio Code.

  2. حدد شعار Azure في "Activity Bar"، وانتقل إلى مستكشف "APP SERVICE"، ثم حدد "Sign in to Azure" واتبع الإرشادات.

    لقطة شاشة لتسجيل الدخول إلى Azure in Visual Studio Code.

  3. في شريط الحالة في الجزء السفلي، تحقق من عنوان البريد الإلكتروني لحساب Azure الخاص بك. في مستكشف "APP SERVICE"، يجب عرض اشتراكك.

  4. في شريط النشاط، حدد شعار "Docker". في مستكشف "REGISTRIES"، تحقق من ظهور سجل الحاوية الذي قمت بإنشائه.

    لقطة شاشة تعرض قيمة السجلات مع توسيع Azure.

تحقق من المتطلبات الأساسية.

تحقق من تثبيت Docker وتشغيله. سيعرض الأمر التالي إصدار Docker في حال كان قيد التشغيل.

docker --version

إنشاء صورة وبنائها

  1. في Visual Studio Code، افتح مجلداً فارغاً وأضِف ملفاً يُسمَّى Dockerfile. في Dockerfile، قم بلصقه في المحتوى استناداً إلى إطار عمل اللغة المطلوب لديك:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

ENV ASPNETCORE_URLS "http://*:${PORT}"

ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]

في Dockerfile هذا، تُعدّ الصورة الأصل واحدة من حاويات .NET المُضمَّنة في خدمة App Service. يُمكنك العثور على الملفات المصدر لذلك في مستودع GitHub Azure-App-Service/ImageBuilde، أدنى GenerateDockerFiles/dotnetcore. يقوم Dockerfile الخاص به بنسخ تطبيق .NET بسيط في /defaulthome/hostingstart. يبدأ Dockerfile الخاص بك بتشغيل هذا التطبيق ببساطة.

  1. افتح لوحة الأوامر، واكتب "Docker Images: Build Image". اكتب "Enter" لتشغيل الأمر.

  2. في مربع "image tag"، حدد العلامة التي تريدها بالتنسيق التالي: <acr-name>.azurecr.io/<image-name>/<tag>، ويكون <acr-name> هو اسم سجل الحاوية الذي أنشأته. اضغط عَلى إدخال.

  3. عند انتهاء الصورة من البناء، انقر فوق "Refresh" في الجزء العلوي من مستكشف "IMAGES" وتحقق من أن الصورة تم إنشاؤها بنجاح.

    لقطة شاشة تعرض الصورة المُضمَّنة مع العلامة.

النشر إلى سجل الحاوية

  1. في شريط النشاط، انقر فوق رمز "Docker". في مستكشف "IMAGES"، ابحث عن الصورة التي أنشأتها للتوّ.

  2. قم بتوسيع الصورة، وانقر بزر الماوس الأيمن فوق العلامة التي تريدها، وانقر فوق "Push".

  3. تأكّد من أن علامة الصورة تبدأ بـ <acr-name>.azurecr.io واضغط على "Enter".

  4. عند انتهاء Visual Studio Code من دفع الصورة إلى تسجيل الحاوية الخاص بك، انقر فوق "Refresh" في الجزء العلوي من مستكشف "REGISTRIES"، ثم تحقق من دفع الصورة بنجاح.

    لقطة شاشة تُوضّح الصورة المنشورة في Azure container registry.

النشر في App Service

  1. في مستكشف "REGISTRIES"، قم بتوسيع الصورة، وانقر بزر الماوس الأيمن فوق العلامة، وانقر فوق "Deploy image to Azure App Service".
  2. اتبع المطالبات لاختيار أحد الاشتراكات، واسم تطبيق فريد عالمياً، ومجموعة موارد وخطة لخدمة App Service. اختر "B1 Basic" لمستوى التسعير، ومنطقة ما قريبة منك.

بعد النشر، يتوفّر التطبيق الخاص بك في http://<app-name>.azurewebsites.net.

"Resource Group" هي مجموعة مُسمَّاة من كافة موارد التطبيق الخاصة بك في Azure. على سبيل المثال، يُمكن أن تحتوي مجموعة الموارد على أحد المراجع إلى موقع ويب، وقاعدة بيانات ووظيفة Azure.

تُحدد خطة App Service الموارد الفعلية التي سيتم استخدامها لاستضافة موقعك على الويب. يستخدم هذا التشغيل السريع خطة استضافة أساسية على البنية الأساسية لـ Linux ، مما يعني أنه ستتم استضافة الموقع على جهاز Linux إلى جانب مواقع ويب أخرى. إذا بدأت بالخطة الأساسية، يُمكنك استخدام مدخل Microsoft Azure لتوسيع نطاقه بحيث يكون موقعك هو الموقع الوحيد الذي يعمل على الجهاز. بالنسبة للتسعير، راجع تسعير خدمة App Service.

استعراض موقع الويب

تعرض لوحة الإخراج حالة عمليات النشر. عند اكتمال العملية، انقر فوق "Open Site" في الإعلام المُنبثق لفتح الموقع في المستعرض الخاص بك.

8. تنظيف الموارد

في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تكن تتوقع أن تحتاج إلى هذه الموارد في المستقبل، يمكنك حذفها عن طريق حذف مجموعة الموارد.

من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".

في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.

الخطوات التالية

تهانينا، لقد أكملت هذا التشغيل السريع بنجاح.

يخرج تطبيق App Service من سجل الحاويات في كل مرة يبدأ التشغيل. إذا أعدت بناء صورتك، ستحتاج فقط إلى دفعها إلى سجل الحاوية الخاص بك، وسيسحب التطبيق الصورة المُحدَّثة عند إعادة تشغيله. لإعلام تطبيقك بسحب الصورة المُحدَّثة على الفور، أعِد تشغيله.

ملحقات Azure الأخرى:

توفّر خدمة Azure App على Linux مجوعة تطبيقات مُحددة مسبقاً على Linux مع دعم للغات مثل .NET، وPHP، وNode.js وغيرها. يُمكنك أيضاً استخدام صورة Docker مُخصصة لتشغيل تطبيق الويب الخاص بك على مكدس تطبيق غير مُحدد بالفعل في Azure. يُوضّح هذا التشغيل السريع لك كيفية نشر إحدى الصور من خدمة Azure Container Registry (ACR) إلى خدمة App Service.

إشعار

للحصول على معلومات حول تشغيل التطبيقات المعبأة في حاويات في بيئة بلا خادم، يرجى الاطلاع على تطبيقات الحاويات.

للتشغيل السريع، تحتاج إلى:

1 - نسخ مستودع العينات:

استنساخ نموذج التطبيق .NET 6.0 باستخدام الأمر التالي:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

ادفع الصورة لـ Azure Container Registry

تأكد من أنك في المجلد الجذر للمستودع المستنسخ. يحتوي هذا المستودع على ملف Dockerfile.linux .

  1. تسجيل الدخول إلى Azure CLI:

    az login
    
  2. تسجيل الدخول إلى سجل حاويات Azure

    az acr login -n <your_registry_name>
    
  3. بناء صورة الحاوية. نقوم بتسمية الصورة dotnetcore-docs-hello-world-linux.

    docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux . 
    
  4. دفع الصورة إلى Azure Container Registry.

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux:latest
    

    إشعار

    يقوم Dockerfile بتعيين رقم المنفذ إلى 80 داخليا. لمزيد من المعلومات حول تكوين الحاوية، راجع تكوين حاوية مخصصة.

3 - النشر على Azure

تسجيل الدخول إلى مدخل Microsoft Azure

قم بتسجيل الدخول إلى بوابة Azure.

إنشاء موارد Azure

  1. اكتب خدمات التطبيق في البحث. ضمن الخدمات، حدد خدمات التطبيقات.

    لقطة شاشة للبحث عن 'خدمات التطبيق' في مدخل Azure.

  2. في صفحة خدمات التطبيقات، حدد إنشاء.

  3. في علامة التبويب الأساسيات، ضمن تفاصيل المشروع، تأكد من تحديد الاشتراك الصحيح ثم اختر مجموعة موارد إنشاء جديد. للاسم، اكتب "myResourceGroup".

    لقطة شاشة لقسم تفاصيل المشروع توضح المكان الذي تحدد فيه اشتراك Azure ومجموعة الموارد لتطبيق الويب.

  4. ضمن تفاصيل المثيل، اكتب اسماً فريداً عالمياً لتطبيق الويب خاصتك وحدد حاوية Docker. حدد Linux الخاص بنظام التشغيل. حدد منطقة تريد عرض تطبيقك منها.

    لقطة شاشة لقسم تفاصيل المثيل حيث تقوم بتوفير اسم للجهاز الظاهري، وتحديد منطقته وصورته وحجمه.

  5. ضمن خطة خدمة التطبيقات، اختر إنشاء خطة خدمة تطبيقات جديدة. اكتب خطة الخدمة الخاصة بي للاسم. لتغيير الطبقة الحرة، انقر فوق تغيير الحجم،وحدد علامة التبويب Dev/Test، وحدد F1، وحدد الزر تطبيق في أسفل الصفحة.

    لقطة شاشة لقسم حساب المسؤول حيث توفر اسم المستخدم وكلمة المرور للمسؤول.

  6. حدد زر التالي: إعدادات التطبيق> في أسفل الصفحة.

  7. في علامة التبويب Docker ، حدد حاوية واحدة ضمن خيارات وسجل حاويات Azureلمصدر الصورة. ضمن خيارات تسجيل حاوية Azure، قم بتعيين القيم التالية:

    • التسجيل: حدد سجل حاوية Azure خاصتك.
    • الصورة: حدد dotnetcore-docs-hello-world-linux.
    • العلامة: حدد الأحدث.

    لقطة شاشة تعرض خيارات تسجيل حاوية Azure.

  8. حدد الزر مراجعة + إنشاء أسفل الصفحة.

    لقطة شاشة تعرض الزر مراجعة وإنشاء في أسفل الصفحة.

  9. بعد عمليات التشغيل للمصادقة، حدد مراجعة + إنشاء بأسفل الصفحة.

  10. بعد اكتمال عملية التوزيع، حدد Go to resource.

    لقطة شاشة تعرض الخطوة التالية من الانتقال إلى المورد.

4 - الاستعراض وصولاً إلى التطبيق

استعرض للوصول إلى تطبيق المنتشرة في متصفح الويب الخاص بك في URL⁦http://<app-name>.azurewebsites.net ⁩.

لقطة شاشة تظهر التطبيق الموزع.

5. تنظيف الموارد

في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تكن تتوقع أن تحتاج إلى هذه الموارد في المستقبل، يمكنك حذفها عن طريق حذف مجموعة الموارد.

من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".

في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.

الخطوات التالية

تهانينا، لقد أكملت هذا التشغيل السريع بنجاح.

يخرج تطبيق App Service من سجل الحاويات في كل مرة يبدأ التشغيل. إذا أعدت بناء صورتك، ستحتاج فقط إلى دفعها إلى سجل الحاوية الخاص بك، وسيسحب التطبيق الصورة المُحدَّثة عند إعادة تشغيله. لإعلام تطبيقك بسحب الصورة المُحدَّثة على الفور، أعِد تشغيله.

توفر Azure App Service مكدسات تطبيقات محددة مسبقا على Windows مثل ASP.NET أو Node.js، تعمل على IIS. ومع ذلك، فإن مجموعة التطبيقات التي تم تكوينها مسبقاً قفل نظام التشغيل ومنع الوصول منخفض المستوى. لا تحتوي حاويات Windows المخصصة على هذه القيود، وتسمح للمطورين بتخصيص الحاويات بالكامل ومنح التطبيقات المعبأة في حاويات وصولاً كاملاً إلى دوال Windows.

يُوضّح هذا التشغيل السريع لك كيفية نشر إحدى الصور من خدمة Azure Container Registry (ACR) إلى خدمة App Service.

للتشغيل السريع، تحتاج إلى:

1 - نسخ مستودع العينات:

استنساخ نموذج التطبيق .NET 6.0 باستخدام الأمر التالي:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

ادفع الصورة لـ Azure Container Registry

تأكد من أنك في المجلد الجذر للمستودع المستنسخ. يحتوي هذا المستودع على ملف Dockerfile.linux . سنستخدم قناة الخدمة طويلة الأجل ل Windows Nano Server (LTSC) 2022 كنظام تشغيل أساسي، مما يستدعي قاعدة Windows بشكل صريح.

إشعار

على الرغم من أن هذه حاوية Windows، لا تزال المسارات بحاجة إلى استخدام الشرطة المائلة للأمام. راجع كتابة Dockerfile لمزيد من التفاصيل.

  1. تسجيل الدخول إلى Azure CLI:

    az login
    
  2. تسجيل الدخول إلى سجل حاويات Azure

    az acr login -n <your_registry_name>
    
  3. بناء صورة الحاوية. نحن نسمي الصورة dotnetcore-docs-hello-world-windows.

    docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows . 
    
  4. دفع الصورة إلى Azure Container Registry.

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows:latest
    

    إشعار

    يقوم Dockerfile بتعيين رقم المنفذ إلى 80 داخليا. لمزيد من المعلومات حول تكوين الحاوية، راجع تكوين حاوية مخصصة.

3 - النشر على Azure

تسجيل الدخول إلى مدخل Microsoft Azure

قم بتسجيل الدخول إلى بوابة Azure.

إنشاء موارد Azure

  1. اكتب خدمات التطبيق في البحث. ضمن الخدمات، حدد خدمات التطبيقات.

    لقطة شاشة للبحث عن 'خدمات التطبيق' في مدخل Azure.

  2. في صفحة خدمات التطبيقات، حدد إنشاء.

  3. في علامة التبويب الأساسيات، ضمن تفاصيل المشروع، تأكد من تحديد الاشتراك الصحيح ثم اختر مجموعة موارد إنشاء جديد. للاسم، اكتب "myResourceGroup".

    لقطة شاشة لقسم تفاصيل المشروع توضح المكان الذي تحدد فيه اشتراك Azure ومجموعة الموارد لتطبيق الويب.

  4. ضمن تفاصيل المثيل، اكتب اسماً فريداً عالمياً لتطبيق الويب خاصتك وحدد حاوية Docker. حدد Windows الخاص بنظام التشغيل. حدد منطقة تريد عرض تطبيقك منها.

    لقطة شاشة لقسم تفاصيل المثيل حيث تقوم بتوفير اسم للجهاز الظاهري، وتحديد منطقته وصورته وحجمه.

  5. ضمن خطة خدمة التطبيقات، اختر إنشاء خطة خدمة تطبيقات جديدة. اكتب خطة الخدمة الخاصة بي للاسم. لتغيير الطبقة الحرة، انقر فوق تغيير الحجم،وحدد علامة التبويب Dev/Test، وحدد P1v3، وحدد الزر تطبيق في أسفل الصفحة.

    لقطة شاشة لقسم حساب المسؤول حيث توفر اسم المستخدم وكلمة المرور للمسؤول.

  6. حدد زر التالي: إعدادات التطبيق> في أسفل الصفحة.

  7. في علامة التبويب Docker ، حدد Azure Container Registryلمصدر الصورة. ضمن خيارات تسجيل حاوية Azure، قم بتعيين القيم التالية:

    • التسجيل: حدد سجل حاوية Azure خاصتك.
    • الصورة: حدد dotnetcore-docs-hello-world-linux.
    • العلامة: حدد الأحدث.

    لقطة شاشة تعرض خيارات تسجيل حاوية Azure.

  8. حدد الزر مراجعة + إنشاء أسفل الصفحة.

    لقطة شاشة تعرض الزر مراجعة وإنشاء في أسفل الصفحة.

  9. بعد عمليات التشغيل للمصادقة، حدد مراجعة + إنشاء بأسفل الصفحة.

  10. بعد اكتمال عملية التوزيع، حدد Go to resource.

    لقطة شاشة تعرض الخطوة التالية من الانتقال إلى المورد.

4 - الاستعراض وصولاً إلى التطبيق

استعرض للوصول إلى تطبيق المنتشرة في متصفح الويب الخاص بك في URL⁦http://<app-name>.azurewebsites.net ⁩.

لقطة شاشة لخدمة تطبيقات Windows مع المراسلة التي سيتم تشغيل الحاويات التي لا تحتوي على منفذ مكشوف في وضع الخلفية.

لاحظ أن نظام تشغيل المضيف يظهر في التذييل، مما يؤكد أننا نعمل في حاوية Windows.

5. تنظيف الموارد

في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تكن تتوقع أن تحتاج إلى هذه الموارد في المستقبل، يمكنك حذفها عن طريق حذف مجموعة الموارد.

من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".

في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.

الخطوات التالية

تهانينا، لقد أكملت هذا التشغيل السريع بنجاح.

يخرج تطبيق App Service من سجل الحاويات في كل مرة يبدأ التشغيل. إذا أعدت بناء صورتك، ستحتاج فقط إلى دفعها إلى سجل الحاوية الخاص بك، وسيسحب التطبيق الصورة المُحدَّثة عند إعادة تشغيله. لإعلام تطبيقك بسحب الصورة المُحدَّثة على الفور، أعِد تشغيله.

توفر Azure App Service مكدسات تطبيقات محددة مسبقا على Windows مثل ASP.NET أو Node.js، تعمل على IIS. ومع ذلك، فإن مجموعة التطبيقات التي تم تكوينها مسبقاً قفل نظام التشغيل ومنع الوصول منخفض المستوى. لا تحتوي حاويات Windows المخصصة على هذه القيود، وتسمح للمطورين بتخصيص الحاويات بالكامل ومنح التطبيقات المعبأة في حاويات وصولاً كاملاً إلى دوال Windows.

يُوضّح هذا التشغيل السريع لك كيفية توزيع إحدى الصور من خدمة سجل Microsoft Artifact (ACR) إلى خدمة تطبيق Azure.

للتشغيل السريع، تحتاج إلى:

1 - الاتصال بـ Azure

قم بتسجيل الدخول إلى حساب Azure الخاص بك باستخدام الأمر Connect-AzAccount واتباع الموجه:

Connect-AzAccount

2 - إنشاء مجموعة موارد

قم بإنشاء مجموعة موارد باستخدام أمرNew-AzResourceGroup. مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها.

في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus. لرؤية جميع المواقع المدعومة لخدمة التطبيقات في المستوى قم بتشغيل الأمرGet-AzLocation.

New-AzResourceGroup -Name myResourceGroup -Location eastus

يقوم الأمر بإرجاع Login Succeeded بمجرد اكتماله.

3 - إنشاء خطة خدمة التطبيقات

إنشاء خطة خدمة تطبيق جديدة باستخدام الأمر New-AzAppServicePlan.

ينشئ المثال التالي خطة خدمة التطبيقات المسماة myAppServicePlanفي طبقة أسعار PremiumV3 (-Tier PremiumV3). تحدد المعلمة -HyperV حاوية Windows.

New-AzAppServicePlan -Name myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -Tier PremiumV3 -HyperV

4 - إنشاء تطبيق الويب الخاص بك

إنشاء تطبيق جديد باستخدام الأمر New-AzWebApp:

New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • تحدد المعلمة الاسم اسم تطبيق الويب.
  • تحدد المعلمة AppServicePlan اسم خطة خدمة التطبيقات.
  • تحدد معلمة الموقع الموقع.
  • تحدد المعلمة ResourceGroupName اسم مجموعة الموارد.
  • تحدد المعلمة ContainerImageName اسم صورة الحاوية والعلامة الاختيارية.

قد يستغرق الأمر بضع دقائق حتى يكتمل.

5 - تصفح إلى التطبيق

استعرض للوصول إلى تطبيق المنتشرة في متصفح الويب الخاص بك في URL⁦http://<app-name>.azurewebsites.net ⁩.

لقطة شاشة لخدمة تطبيقات Windows مع المراسلة التي سيتم تشغيل الحاويات التي لا تحتوي على منفذ مكشوف في وضع الخلفية.

6 - تنظيف الموارد

قم بإزالة مجموعة موارد باستخدام أمر Remove-AzResourceGroup:

Remove-AzResourceGroup myResourceGroup

الخطوات التالية

تهانينا، لقد أكملت هذا التشغيل السريع بنجاح.

يخرج تطبيق App Service من سجل الحاويات في كل مرة يبدأ التشغيل. إذا أعدت بناء صورتك، ستحتاج فقط إلى دفعها إلى سجل الحاوية الخاص بك، وسيسحب التطبيق الصورة المُحدَّثة عند إعادة تشغيله. لإعلام تطبيقك بسحب الصورة المُحدَّثة على الفور، أعِد تشغيله.

توفر Azure App Service مكدسات تطبيقات محددة مسبقا على Windows مثل ASP.NET أو Node.js، تعمل على IIS. ومع ذلك، فإن مجموعة التطبيقات التي تم تكوينها مسبقاً قفل نظام التشغيل ومنع الوصول منخفض المستوى. لا تحتوي حاويات Windows المخصصة على هذه القيود، وتسمح للمطورين بتخصيص الحاويات بالكامل ومنح التطبيقات المعبأة في حاويات وصولاً كاملاً إلى دوال Windows.

يُوضّح هذا التشغيل السريع لك كيفية توزيع إحدى الصور من خدمة سجل Microsoft Artifact (ACR) إلى خدمة تطبيق Azure.

للتشغيل السريع، تحتاج إلى:

1 - الاتصال بـ Azure

قم بتسجيل الدخول إلى حساب Azure الخاص بك باستخدام الأمر az login واتباع الموجه:

az login

2 - إنشاء مجموعة موارد

إنشاء مجموعة موارد مع الأمر az group create. مجموعة موارد Azure هي حاوية منطقية يتم بها نشر موارد Azure وإدارتها.

في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus. لرؤية جميع المواقع المدعومة لخدمة التطبيقات في المستوى قم بتشغيل الأمرaz appservice list-locations.

az group create --name myResourceGroup --location eastus

3 - إنشاء خطة خدمة التطبيقات

إنشاء خطة خدمة التطبيق في مجموعة الموارد باستخدام الأمر az appservice plan create.

ينشئ المثال التالي خطة خدمة التطبيقات المسماة myAppServicePlanفي طبقة الأسعارP1V3 (--sku P1V3).

az appservice plan create --resource-group myResourceGroup --location eastus --name myAppServicePlan --hyper-v --sku p1v3

إشعار

إذا واجهت الخطأ، "تم تغيير سلوك هذا الأمر بواسطة الملحق التالي: appservice-kube"، قم بإزالة الملحق appservice-kube.

4 - إنشاء تطبيق الويب الخاص بك

إنشاء تطبيق ويب مخصصًا للحاوية myAppServicePlanفي خطة خدمة التطبيق باستخدام الأمر إنشاء az webapp. لا تنس استبدال myContainerApp باسم تطبيق فريد (الأحرف الصالحة هي a-z، 0-9، و -).

az webapp create --name myContainerApp --plan myAppServicePlan --location eastus --resource-group myResourceGroup --deployment-container-image-name mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • تحدد المعلمة الاسم اسم تطبيق الويب.
  • تحدد المعلمة AppServicePlan اسم خطة خدمة التطبيقات.
  • تحدد معلمة الموقع الموقع.
  • تحدد المعلمة ResourceGroupName اسم مجموعة الموارد.
  • تحدد معلمة deployment-container-image-name اسم صورة الحاوية والعلامة الاختيارية.

5 - تصفح إلى التطبيق

استعرض للوصول إلى تطبيق المنتشرة في متصفح الويب الخاص بك في URL⁦http://<app-name>.azurewebsites.net ⁩.

لقطة شاشة لخدمة تطبيقات Windows مع المراسلة التي سيتم تشغيل الحاويات التي لا تحتوي على منفذ مكشوف في وضع الخلفية.

6 - تنظيف الموارد

قم بإزالة مجموعة موارد باستخدام أمر az group delete:

az group delete --no-wait --name <resource_group>

الخطوات التالية

تهانينا، لقد أكملت هذا التشغيل السريع بنجاح.

يخرج تطبيق App Service من سجل الحاويات في كل مرة يبدأ التشغيل. إذا أعدت بناء صورتك، ستحتاج فقط إلى دفعها إلى سجل الحاوية الخاص بك، وسيسحب التطبيق الصورة المُحدَّثة عند إعادة تشغيله. لإعلام تطبيقك بسحب الصورة المُحدَّثة على الفور، أعِد تشغيله.