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

يُعد سجل حاويات Azure خدمة تسجيل خاصة لبناء صور الحاويات والبيانات الاصطناعية ذات الصلة وتخزينها وإدارتها. في هذا التشغيل السريع، ستتمكن من إنشاء مثيل Azure Container Registry من خلال Azure CLI. وبعد ذلك، ستستخدم أوامر Docker لدفع صورة حاوية إلى السجل، وسحب الصورة وتشغيلها من السجل أخيراً.

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

يجب أيضاً أن يكون Docker مثبتاً لديك محلياً. يوفر Docker حزماً تعمل على تكوين Docker بسهولة على أي نظام ⁧⁩macOS⁧⁩، أو ⁧⁩Windows⁧⁩ أو ⁧⁩Linux⁧⁩.

لأن Azure Cloud Shell لا يتضمن جميع مكونات Docker المطلوبة (التطبيق الخفي ⁧dockerd⁩)، لا يمكنك استخدام Cloud Shell لبدء هذا التشغيل السريع.

قم بإنشاء مجموعة موارد

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

في المثال التالي، سيتم إنشاء مجموعة موارد باسم ⁧⁩myResourceGroup⁧⁩ في موقع ⁧⁩eastus⁧⁩.

az group create --name myResourceGroup --location eastus

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

في هذا التشغيل السريع، يمكنك إنشاء سجل ⁧⁩Basic⁧⁩، وهو الخيار الأمثل من حيث التكلفة للمطورين الذين يتعرفون على سجل حاويات Azure. للحصول على تفاصيل حول مستويات الخدمة المتوفرة، راجع ⁧⁩Container registry service tiers⁧⁩⁩.

قم بإنشاء مثيل Azure Container Registry باستخدام الأمر ⁧⁩az acr create⁧⁩. يجب أن يكون اسم التسجيل فريدا داخل Azure، وأن يحتوي على 5-50 حرفا أبجديا رقميا صغيرة. في المثال التالي، يتم استخدام mycontainerregistry . قم بتحديث هذا إلى قيمة فريدة.

az acr create --resource-group myResourceGroup \
  --name mycontainerregistry --sku Basic

عند إنشاء السجل، يكون الإخراج مشابهاً لما يلي:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry",
  "location": "eastus",
  "loginServer": "mycontainerregistry.azurecr.io",
  "name": "mycontainerregistry",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

دوّن ⁧loginServer⁩ في الإخراج، وهو اسم السجل المؤهل بالكامل (كلها أحرف صغيرة). خلال بقية فترة التشغيل السريع هذه، يُعد ⁧<registry-name>⁩ عنصراً نائباً لاسم سجل الحاوية، ويُعد ⁧<login-server>⁩ عنصراً نائباً لاسم خادم تسجيل الدخول للسجل.

تلميح

في هذا التشغيل السريع، يمكنك إنشاء سجل أساسي، وهو الخيار الأمثل من حيث التكلفة للمطورين الذين يتعرفون على Azure Container Registry. اختر مستويات أخرى لزيادة التخزين وإنتاجية الصورة، وقدرات مثل الاتصال باستخدام نقطة نهاية خاصة. للحصول على تفاصيل حول مستويات الخدمة المتوفرة (SKUs)، راجع ⁧⁩مستويات خدمة سجل الحاوية⁧⁩.

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

قبل دفع صور الحاوية وسحبها، يجب تسجيل الدخول إلى السجل. لتنفيذ ذلك، استخدم الأمر ⁧⁩az acr login⁧⁩. حدد اسم مورد السجل فقط عند تسجيل الدخول باستخدام Azure CLI. لا تستخدم اسم خادم تسجيل الدخول المؤهل بالكامل.

az acr login --name <registry-name>

مثال:

az acr login --name mycontainerregistry

يقوم الأمر بإرجاع رسالة ⁧Login Succeeded⁩ بمجرد إكماله.

دفع الصورة إلى التسجيل

لدفع صورة إلى سجل Azure Container، يجب أن يكون لديك صورة أولاً. إذا لم تكن لديك حتى الآن أي صور حاوية محلية، فقم بتشغيل الأمر التالي docker pull لسحب صورة عامة موجودة. في هذا المثال، اسحب صورة hello-world من Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

قبل أن تتمكن من دفع صورة إلى السجل، يجب وضع علامة عليه مع اسم مؤهل بالكامل لخادم تسجيل الدخول إلى السجل. اسم خادم تسجيل الدخول بالتنسيق <registry-name>.azurecr.io (يجب أن تكون كل الأحرف صغيرة)، مثل mycontainerregistry.azurecr.io.

ضع علامة على الصورة باستخدام أمر علامة docker. استبدل <login-server> باسم خادم تسجيل الدخول لمثيل ACR.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

مثال:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

أخيراً، استخدم docker push لدفع الصورة إلى مثيل السجل. استبدل <login-server> باسم خادم تسجيل الدخول لمثيل السجل الخاص بك. ينشئ هذا المثال مستودع hello-world الذي يحتوي على الصورة hello-world:v1.

docker push <login-server>/hello-world:v1

بعد دفع الصورة إلى سجل الحاوية، قم بإزالة صورة hello-world:v1 من بيئة Docker المحلية. (لاحظ أن هذا الأمر docker rmi لا يزيل الصورة من مستودع hello-world في سجل حاوية Azure.)

docker rmi <login-server>/hello-world:v1

سرد صور الحاوية

يسرد المثال التالي المستودعات في السجل:

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

المخرجات:

Result
----------------
hello-world

يسرد المثال التالي العلامات الموجودة في مستودع ⁧⁩hello-world⁧⁩.

az acr repository show-tags --name <registry-name> --repository hello-world --output table

المخرجات:

Result
--------
v1

تشغيل الصورة من التسجيل

الآن، يمكنك سحب وتشغيل صورة الحاوية hello-world:v1 من سجل الحاويات باستخدام docker run:

docker run <login-server>/hello-world:v1  

مثال الإخراج:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

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

عندما لا تعود هناك حاجة، يمكنك استخدام الأمر ⁦⁧⁩⁩az group delete⁦⁧⁩⁩ لإزالة مجموعة الموارد، وسجل الحاوية، وصور الحاوية المخزنة فيه.

az group delete --name myResourceGroup

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

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