إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا التشغيل السريع، يمكنك استخدام أوامر Azure Container Registry Tasks لإنشاء صورة حاوية Docker ودفعها وتشغيلها بسرعة داخل Azure، دون تثبيت Docker محلي. مهام ACR هي مجموعة من الميزات داخل Azure Container Registry لمساعدتك في إدارة صور الحاوية وتعديلها عبر دورة حياة الحاوية. يوضح هذا المثال كيفية إلغاء تحميل دورة تطوير صورة الحاوية "الداخلية" إلى السحابة باستخدام البنيات عند الطلب باستخدام Dockerfile محلي.
بعد إكمال هذا البدء السريع، استكشف الميزات المتقدمة في مهام ACR باستخدام الدروس التعليمية. يمكن لمهام ACR أتمتة إنشاءات الصور استنادا إلى تثبيت التعليمات البرمجية أو تحديثات الصور الأساسية، أو اختبار حاويات متعددة، بالتوازي، من بين سيناريوهات أخرى.
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع بدء استخدام Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات تسجيل الدخول الأخرى، راجع المصادقة على Azure باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات حول الملحقات، راجع استخدام الملحقات وإدارتها باستخدام Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
إنشاء مجموعة موارد
إذا لم يكن لديك سجل حاوية بالفعل، فأنشئ أولا مجموعة موارد باستخدام الأمر az group create . مجموعة موارد Azure هي حاوية منطقية تقوم بنشر موارد Azure وإدارتها فيها.
في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.
az group create --name myResourceGroup --location eastus
إنشاء سجل حاويات
أنشئ سجل حاوية باستخدام أمر az acr create . يجب أن يكون اسم السجل فريداً داخل Azure، وأن يحتوي على 5 إلى 50 حرفاً أبجدياً رقمياً. في المثال التالي، يتم استخدام mycontainerregistry008 . قم بتحديث هذه القيمة إلى قيمة فريدة.
az acr create --resource-group myResourceGroup \
--name mycontainerregistry008 --sku Basic
ينشئ هذا المثال سجلا أساسيا ، وهو خيار محسن التكلفة للمطورين الذين يتعلمون عن Azure Container Registry. للحصول على تفاصيل حول مستويات الخدمة المتاحة، راجع ميزات وحدود وحدة تخزين حاوية Azure Container.
قم بإنشاء صورة ودفعها من Dockerfile
الآن استخدم Azure Container Registry لإنشاء صورة ودفعها. أولا، أنشئ دليل عمل محلي. ثم أنشئ ملف دوكر باسم دوكر فايل بسطر واحد: FROM mcr.microsoft.com/hello-world. هذا الخط هو مثال بسيط يبني صورة حاوية لينكس من الصورة المستضافة hello-world في سجل الحاويات مايكروسوفت. يمكنك إنشاء Dockerfile القياسي الخاص بك وإنشاء صور للأنظمة الأساسية الأخرى. إذا كنت تعمل على bash shell، أنشئ Dockerfile باستخدام الأمر التالي:
echo "FROM mcr.microsoft.com/hello-world" > Dockerfile
شغل أمر build az acr . يقوم ببناء الصورة وبعد أن تبنى الصورة بنجاح، يدفعها إلى سجل السجل الخاص بك. ينشئ المثال التالي الصورة ويدفعها sample/hello-world:v1 . في . نهاية الأمر يعين موقع Dockerfile، في هذه الحالة الدليل الحالي.
az acr build --image sample/hello-world:v1 \
--registry mycontainerregistry008 \
--file Dockerfile .
ملاحظة
إذا استخدمت سجل مصدر مدعوم ب ABAC، يجب عليك تمرير هوية المتصل كهوية يستخدمها build للمصادقة مع السجل. تمرير الهوية باستخدام العلم --source-acr-auth-id [caller] عند تشغيل az acr build.
لمزيد من المعلومات، راجع تأثيرات تمكين ABAC على مهام ACR والمهام السريعة والبنى السريعة وتشغيل سريع.
الإخراج من عملية بناء ودفع ناجحة مشابهة للآتي:
Packing source code into tar to upload...
Uploading archived source code from '/tmp/build_archive_b0bc1e5d361b44f0833xxxx41b78c24e.tar.gz'...
Sending context (1.856 KiB) to registry: mycontainerregistry008...
Queued a build with ID: ca8
Waiting for agent...
2023/03/18 21:56:57 Using acb_vol_4c7ffa31-c862-4be3-xxxx-ab8e615c55c4 as the home volume
2023/03/18 21:56:57 Setting up Docker configuration...
2023/03/18 21:56:58 Successfully set up Docker configuration
2023/03/18 21:56:58 Logging in to registry: mycontainerregistry008.azurecr.io
2023/03/18 21:56:59 Successfully logged into mycontainerregistry008.azurecr.io
2023/03/18 21:56:59 Executing step ID: build. Working directory: '', Network: ''
2023/03/18 21:56:59 Obtaining source code and scanning for dependencies...
2023/03/18 21:57:00 Successfully obtained source code and scanned for dependencies
2023/03/18 21:57:00 Launching container with name: build
Sending build context to Docker daemon 13.82kB
Step 1/1 : FROM mcr.microsoft.com/hello-world
latest: Pulling from hello-world
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586fxxxx21577a99efb77324b0fe535
Successfully built fce289e99eb9
Successfully tagged mycontainerregistry008.azurecr.io/sample/hello-world:v1
2023/03/18 21:57:01 Successfully executed container: build
2023/03/18 21:57:01 Executing step ID: push. Working directory: '', Network: ''
2023/03/18 21:57:01 Pushing image: mycontainerregistry008.azurecr.io/sample/hello-world:v1, attempt 1
The push refers to repository [mycontainerregistry008.azurecr.io/sample/hello-world]
af0b15c8625b: Preparing
af0b15c8625b: Layer already exists
v1: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524
2023/03/18 21:57:03 Successfully pushed image: mycontainerregistry008.azurecr.io/sample/hello-world:v1
2023/03/18 21:57:03 Step ID: build marked as successful (elapsed time in seconds: 2.543040)
2023/03/18 21:57:03 Populating digests for step ID: build...
2023/03/18 21:57:05 Successfully populated digests for step ID: build
2023/03/18 21:57:05 Step ID: push marked as successful (elapsed time in seconds: 1.473581)
2023/03/18 21:57:05 The following dependencies were found:
2023/03/18 21:57:05
- image:
registry: mycontainerregistry008.azurecr.io
repository: sample/hello-world
tag: v1
digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
runtime-dependency:
registry: registry.hub.docker.com
repository: library/hello-world
tag: v1
digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
git: {}
Run ID: ca8 was successful after 10s
تشغيل الصورة
الآن شغل الصورة التي أنشأتها ودفعتها إلى سجل السجل الخاص بك. استخدم az acr run لتشغيل أمر الحاوية. في سير عمل تطوير الحاويات لديك، قد تكون هذه الخطوة خطوة تحقق قبل نشر الصورة، أو يمكنك تضمين الأمر في ملف YAML متعدد الخطوات.
المثال التالي يستخدم $Registry لتحديد نقطة نهاية السجل حيث تشغل الأمر:
az acr run --registry mycontainerregistry008 \
--cmd '$Registry/sample/hello-world:v1' /dev/null
ملاحظة
إذا كنت تستخدم سجل مصدر مفعل ب ABAC، يجب عليك تمرير هوية المتصل كهوية يستخدمها الأمر run للمصادقة مع السجل. تمرير الهوية باستخدام العلم --source-acr-auth-id [caller] عند تشغيل az acr run.
لمزيد من المعلومات، راجع تأثيرات تمكين ABAC على مهام ACR والمهام السريعة والبنى السريعة وتشغيل سريع.
تشغل cmd المعلمة في هذا المثال الحاوية في تكوينها الافتراضي، ولكنها cmd تدعم معلمات إضافية docker run أو حتى أوامر أخرى docker .
الإخراج مشابه للآتي:
Packing source code into tar to upload...
Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'...
Sending context (1.855 KiB) to registry: mycontainerre...
Queued a run with ID: cab
Waiting for an agent...
2023/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
2023/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
2023/03/19 19:01:53 Successfully set up Docker network: acb_default_network
2023/03/19 19:01:53 Setting up Docker configuration...
2023/03/19 19:01:54 Successfully set up Docker configuration
2023/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
2023/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
2023/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
2023/03/19 19:01:55 Launching container with name: acb_step_0
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
2023/03/19 19:01:56 Successfully executed container: acb_step_0
2023/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801)
Run ID: cab was successful after 6s
تنظيف الموارد
عندما لا تحتاج إلى الموارد، استخدم أمر az group delete لإزالة مجموعة الموارد، سجل الحاويات، وصور الحاويات المخزنة في السجل.
az group delete --name myResourceGroup
الخطوات التالية
في هذا التشغيل السريع، استخدمت ميزات مهام ACR لإنشاء صورة حاوية Docker ودفعها وتشغيلها بسرعة داخل Azure، دون تثبيت Docker محلي. للتعرف على كيفية استخدام مهام ACR لأتمتة بناء الصور وتحديثها، راجع دروس Azure Container Registry Tasks.