الدرس - إنشاء Azure Container Registry (ACR) وبناء الصور

Azure Container Registry (ACR) هو سجل خاص لصور الحاويات. يسمح لك سجل الحاوية الخاص بإنشاء تطبيقاتك ورمزك المخصص وتوزيعها بأمان.

في هذا البرنامج التعليمي، يمكنك نشر مثيل ACR ودفع صورة حاوية إليه. ‏‫ستتعلم كيفية:

  • إنشاء مثيل ACR.
  • استخدم مهام ACR لإنشاء صور الحاوية ودفعها إلى ACR.
  • عرض الصور في السجل الخاص بك.

قبل البدء

في previous tutorial، قمت باستنساخ مستودع كود التطبيق واستخدمت Docker لإنشاء صورة حاوية لتطبيق بسيط Azure Store Front. إذا لم تنشئ صورة تطبيق Store Front Azure، عد إلى Tutorial 1 - جهز تطبيقا ل AKS.

يتطلب هذا الدرس التعليمي إصدار Azure CLI 2.0.53 أو أحدث. للعثور على الإصدار، قم بتشغيل az --version الأمر . إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure CLI.

Create an Azure Container Registry

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

  1. أنشئ متغيرات لاسم مجموعة الموارد، والموقع، واسم السجل. يمكنك استخدام هذه القيم أو إنشاء قيمك الخاص. يجب أن تكون قيمة متغير اسم السجل المخزنة في ACRNAME فريدة ضمن Azure وتحتوي على 5-50 حرفا أبجديا رقميا صغيرا.

    export RESOURCE_GROUP=myResourceGroup
    export LOCATION=westus2
    export RANDOM_STRING=$(printf '%05d%05d' "$RANDOM" "$RANDOM")
    export ACRNAME="myregistry${RANDOM_STRING}"
    

    يجب أن تكون قيمة متغير اسم السجل المخزنة في ACRNAME فريدة ضمن Azure وتحتوي على 5-50 حرفا أبجديا رقميا صغيرا. يتم ربط القيمة ACRNAME بالمتغير RANDOM_STRING الذي يخزن سلسلة عشوائية مكونة من 10 أرقام لضمان أن اسم السجل فريد. المتغير RESOURCE_GROUP الذي يحمل قيمة myResourceGroup لمجموعة الموارد وبقيمة LOCATIONwestus2. يمكنك استخدام هذه القيم أو إنشاء قيمك الخاص.

  2. إنشاء مجموعة موارد باستخدام az group create الأمر .

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. إنشاء مثيل ACR باستخدام az acr create الأمر وتوفير اسم التسجيل الفريد الخاص بك. تعد وحدة SKU الأساسية نقطة دخول محسنة من حيث التكلفة لأغراض التطوير توفر توازنا بين التخزين والإنتاجية.

    az acr create \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --name $ACRNAME \
      --sku Basic
    

إنشاء صور الحاوية ودفعها إلى السجل

ابن الصور وادفع إلى ACR الخاص بك باستخدام أمر Azure CLI az acr build. تستخدم الأوامر az acr build صورا في المستودع الذي قمت باستنساخه في المقال السابق، جهز تطبيقا ل AKS. تأكد من التبديل إلى ذلك المجلد وإلا ستفشل الأوامر build . على سبيل المثال، إذا أنشأت مجلد demorepo وقمت باستنساخ المستودع، فإن الدليل الجذري في المستودع هو aks-store-demo، لذا انتقل إلى مجلد demorepo/aks-store-demo .

لا يوجد رمز مكافئ ل Azure PowerShell cmdlet يبني أو يدفع صور الحاويات إلى السجل. تحتاج إلى استخدام الخطوات الخاصة ب Azure CLI، لكن مع متغير ACRNAME مضبوط على القيمة التي أنشأتها في PowerShell. في PowerShell يمكنك الحصول على القيمة من خلال الأمر $ACRNAME.

في المثال التالي، لا نقوم بإنشاء product-service الصورة. قد يستغرق بناء هذه الصورة وقتا طويلا، وهناك صورة حاوية متوفرة بالفعل في سجل حاويات GitHub (GHCR). يمكنك استخدام az acr import الأمر لاستيراد الصورة من GHCR إلى مثيل ACR الخاص بك. كما أننا لا rabbitmq نبني الصورة. هذه الصورة متوفرة من مستودع Docker Hub العام ولا تحتاج إلى بناءها أو دفعها إلى مثيل ACR الخاص بك.

az acr import \
  --name $ACRNAME \
  --source ghcr.io/azure-samples/aks-store-demo/product-service:latest \
  --image aks-store-demo/product-service:latest

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/order-service:latest ./src/order-service/

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/store-front:latest ./src/store-front/

سرد الصور في السجل

عرض الصور في مثيل ACR الخاص بك باستخدام az acr repository list الأمر .

az acr repository list --name $ACRNAME --output table

يسرد إخراج المثال التالي الصور المتوفرة في السجل الخاص بك:

Result
----------------
aks-store-demo/product-service
aks-store-demo/order-service
aks-store-demo/store-front

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

في هذا البرنامج التعليمي، قمت بإنشاء ACR ودفعت الصور إليه لاستخدامها في مجموعة AKS. لقد تعرفت على كيفية:

  • إنشاء مثيل ACR.
  • استخدم مهام ACR لإنشاء صور الحاوية ودفعها إلى ACR.
  • عرض الصور في السجل الخاص بك.

في الدرس التالي، تتعلم كيفية نشر عنقود Kubernetes في Azure.