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

هذا هو الجزء الثاني من البرنامج التعليمي من ثلاثة أجزاء. الجزء الأول من البرنامج التعليمي إنشاء صورة حاوية دوكر لتطبيق ويب Node.js. في هذا البرنامج التعليمي، تقوم بدفع الصورة إلى Azure Container Registry. إذا لم تكن قد أنشأت صورة الحاوية بعد، فارجع إلى البرنامج التعليمي 1 - إنشاء صورة حاوية.

Azure Container Registry هو سجل Docker الخاص بك في Azure. في هذا البرنامج التعليمي، الجزء الثاني من السلسلة، أنت:

  • تنشئ مثيل تسجيل حاوية Azure مع CLI Azure
  • تضع علامة على صورة حاوية لسجل حاوية Azure
  • تقوم بتحميل الصورة إلى السجل الخاص بك

في المقالة التالية، الأخيرة في السلسلة، يمكنك نشر الحاوية من التسجيل الخاص بك إلى مثيلات حاوية Azure.

قبل أن تبدأ

يجب أن تفي بالمتطلبات التالية لإكمال هذا البرنامج التعليمي:

⁩Azure CLI⁧⁩: يجب أن يكون لديك إصدار 2.0.29، أو إصدار أحدث من Azure CLI مُثبتًا على الكمبيوتر المحلي لديك. شغِّل ⁧az --version⁩ للبحث عن الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع ⁧⁩تثبيت Azure CLI⁧⁩.

⁩Docker⁧⁩: يفترض هذا البرنامج التعليمي توفّر فهم أولي لمفاهيم Docker الأساسية، مثل الحاويات، وصور الحاويات، وأوامر ⁧⁧docker⁩ الأساسية. للحصول على دليل تمهيدي لأساسيات Docker والحاويات، اطّلِع على ⁧⁩نظرة عامة حول Docker⁧⁩.

⁩Docker⁧⁩: لإكمال هذا البرنامج التعليمي، تحتاج إلى تثبيت Docker محليًا. يوفر Docker الحزم التي تكوّن بيئة Docker على أنظمة التشغيل ⁧⁩macOS⁧⁩، و⁧⁩Windows⁧⁩، و⁧⁩Linux⁧⁩.

هام

لأن Azure Cloud shell لا يتضمن تطبيق Docker الخفي، ⁧⁩يجب⁧⁩ عليك تثبيت كل من Azure CLI ومحرك Docker على ⁧⁩الكمبيوتر المحلي⁧⁩ لإكمال هذا البرنامج التعليمي. لا يمكنك استخدام Azure Cloud Shell لهذا البرنامج التعليمي.

إنشاء سجل حاوية Azure

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

أنشئ مجموعة موارد باستخدام الأمر az group create. في المثال التالي، يتم إنشاء مجموعة موارد تسمى myResourceGroup في منطقة eastus:

az group create --name myResourceGroup --location eastus

بمجرد إنشاء مجموعة الموارد، قم بإنشاء سجل حاويات Azure باستخدام الأمر az acr create. يجب أن يكون اسم تسجيل الحاوية فريدًا داخل Azure، وأن يحتوي على 5 إلى 50 حرفًا أبجديًا رقميًا. استبدل <acrName> باسم فريد للسجل:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

فيما يلي إخراج جزئي لسجل حاوية Azure جديد يسمى mycontainerregistry082:

{
  "creationDate": "2020-07-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

يشير باقي البرنامج التعليمي إلى <acrName> كعنصر نائب لاسم تسجيل الحاوية الذي اخترته في هذه الخطوة.

تسجيل الدخول إلى سجل الحاوية

يجب عليك تسجيل الدخول إلى مثيل Azure Container Registry قبل تحويل الصور إليه. استخدم الأمر az acr login لإكمال العملية. يجب عليك تقديم الاسم الفريد الذي اخترته لسجل الحاوية عند إنشائه.

az acr login --name <acrName>

على سبيل المثال:

az acr login --name mycontainerregistry082

إرجاع الأمر Login Succeeded بمجرد إكماله:

Login Succeeded

ضع علامة على صورة الحاوية

لدفع صورة حاوية إلى سجل خاص مثل Azure Container Registry، يجب عليك أولاً وضع علامة على الصورة بالاسم الكامل لخادم تسجيل الدخول الخاص بالسجل.

أولاً، الحصول على اسم ملقم تسجيل الدخول الكامل لسجل حاوية Azure. قم بتشغيل الأمر التالي az acr show، واستبدله<acrName> باسم السجل الذي أنشأته للتو:

az acr show --name <acrName> --query loginServer --output table

على سبيل المثال، إذا كان التسجيل الخاص بك يسمى mycontainerregistry082:

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

الآن، عرض قائمة الصور المحلية الخاصة بك مع الأمر صور docker:

docker images

جنبًا إلى جنب مع أي صور أخرى لديك على جهازك، يجب أن تشاهد صورة aci-tutorial-app التي قمت ببنائها في البرنامج التعليمي السابق:

docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

الآن، ضع علامة على الصورة azure-vote-front باستخدام loginServer لسجل الحاوية الخاص بك. أضف العلامة :v1 أيضًا إلى نهاية اسم الصورة للإشارة إلى رقم إصدار الصورة. استبدل <acrLoginServer>بنتيجة الأمر az acr showالذي نفذته سابقًا.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

تشغيل docker images مرة أخرى للتحقق من عملية وضع العلامات:

docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

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

الآن بعد أن قمت بوضع علامة على صورة التطبيق aci-tutorial مع اسم خادم تسجيل الدخول الكامل للسجل الخاص بك، يمكنك دفع الصورة إلى التسجيل مع أمر docker push. استبدل <acrLoginServer> باسم خادم تسجيل الدخول الكامل الذي حصلت عليه في الخطوة السابقة.

docker push <acrLoginServer>/aci-tutorial-app:v1

pushيجب أن تستغرق العملية بضع ثوانٍ إلى بضع دقائق اعتمادًا على اتصالك بالإنترنت، والإخراج مشابه لما يلي:

docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

سرد الصور في Azure Container Registry

للتحقق من أن الصورة التي قمت بدفعها للتو موجودة بالفعل في سجل حاوية Azure ، قم بإدراج الصور الموجودة في السجل الخاص بك باستخدام الأمر az acr repository list. استبدل <acrName> باسم سجل الحاوية الخاص بك.

az acr repository list --name <acrName> --output table

على سبيل المثال:

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

لرؤية العلامات لصورة معينة، استخدم الأمر az acr repository show-tags.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

يجب أن ترى مخرجات مماثلة لما يلي:

--------
v1

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

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

  • تم إنشاء مثيل Azure Container Registry باستخدام Azure CLI
  • تم وضع علامة على صورة حاوية لـ Azure Container Registry
  • تحميل صورة إلى Azure Container Registry

تقدم إلى البرنامج التعليمي التالي لمعرفة كيفية نشر الحاوية في Azure باستخدام مثيلات Azure Container: