إدارة المحتوى العام باستخدام تسجيل حاويات Azure

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

المخاطر المرتبطة بالمحتوى العام

قد تعتمد بيئتك على المحتوى العام، مثل صور الحاوية العامة أو مخططات Helm أو نهج Open Policy Agent (OPA) أو عناصر أخرى. على سبيل المثال، قد تقوم بتشغيل nginx لتوجيه الخدمة أو docker build FROM alpine عن طريق سحب الصور مباشرة من Docker Hub أو سجل عام آخر.

بدون ضوابط مناسبة، يمكن أن يؤدي وجود تبعيات على محتوى السجل العام إلى مخاطر على عمليات سير عمل تطوير ونشر الصور. لتقليل المخاطر، احتفظ بنسخ محلية من المحتوى العام عندما يكون ذلك ممكنًا. للحصول على التفاصيل، راجع مدونة مبادرة الحاوية المفتوحة.

المصادقة مع Docker Hub

إذا قمت حاليا بسحب الصور العامة من Docker Hub كجزء من سير عمل البناء أو النشر، نوصي بالمصادقة باستخدام حساب Docker Hub بدلا من تقديم طلب سحب مجهول.

عند إجراء طلبات سحب مجهولة متكررة، قد ترى أخطاء Docker مشابهة ل ERROR: toomanyrequests: Too Many Requests. Docker Hub أو You have reached your pull rate limit. المصادقة عليها لمنع هذه الأخطاء.

إشعار

تنطبق حدود معدل التحميل على الطلبات المجهولة والمصادقة إلى Docker Hub من حسابات خطة Docker Free. يتم فرض هذه الحدود بواسطة عنوان IP ومعرف Docker، على التوالي.

لتقدير عدد طلبات السحب، ضع في اعتبارك أنه عند استخدام خدمات موفر السحابة أو العمل خلف NAT لشركة، يظهر العديد من المستخدمين ل Docker Hub كمجموعة فرعية من عناوين IP. بإضافة مصادقة حساب Docker المدفوع إلى الطلبات المقدمة إلى Docker Hub، يمكنك تجنب اضطرابات الخدمة المحتملة الناجمة عن تقييد حد المعدل.

للحصول على التفاصيل، راجع تسعير Docker واشتراكاته وشروط خدمة Docker.

رمز الوصول إلى Docker Hub

يدعم Docker Hub رموز الوصول الشخصية كبدائل لكلمة مرور Docker عند المصادقة على Docker Hub. يُوصى باستخدام الرموز المميزة للخدمات الآلية التي تسحب الصور من Docker Hub. يمكنك إنشاء العديد من الرموز المميزة لمستخدمين أو خدمات مختلفة، وإلغاء الرموز المميزة عند عدم الحاجة إليها.

للمصادقة باستخدام docker login رمز مميز، احذف كلمة المرور في سطر الأوامر. عند مطالبتك بكلمة مرور، أدخل الرمز المميز بدلاً من ذلك. إذا قمت بتمكين المصادقة ذات العاملين لحساب Docker Hub الخاص بك، يجب عليك استخدام رمز وصول شخصي عند تسجيل الدخول من Docker CLI.

المصادقة من خدمات Azure

تدعم العديد من خدمات Azure، بما في ذلك App Service وAzure Container Instances، سحب الصور من السجلات العامة مثل Docker Hub لنشر الحاويات. إذا كنت بحاجة إلى نشر صورة من Docker Hub، نوصيك بتهيئة الإعدادات للمصادقة باستخدام حساب Docker Hub. أمثلة:

خدمة التطبيقات

  • مصدر الصورة: Docker Hub
  • الوصول إلى المستودع: خاص
  • تسجيل الدخول: <اسم مستخدم Docker Hub>
  • كلمة المرور: <رمز Docker Hub المميز>

للحصول على التفاصيل، راجع سحب Docker Hub المصادق عليه على App Service.

مثيلات حاوية Azure

  • مصدر الصورة: Docker Hub أو سجل آخر
  • نوع الصورة: خاص
  • خادم تسجيل الدخول إلى سجل الصور: docker.io
  • اسم مستخدم سجل الصور: <اسم مستخدم Docker Hub>
  • كلمة مرور تسجيل الصورة: <رمز Docker Hub المميز>
  • الصورة: docker.io/<اسم الرد>:<العلامة>

تكوين Artifact Cache لاستهلاك المحتوى العام

أفضل ممارسة لاستهلاك المحتوى العام هي الجمع بين مصادقة السجل وميزة Artifact Cache. استخدم Artifact Cache لتخزين بيانات الحاوية الاصطناعية مؤقتا في Azure Container Registry حتى في الشبكات الخاصة. لا يحميك استخدام Artifact Cache من حدود معدل التسجيل فحسب، بل يزيد أيضا من موثوقية السحب بشكل كبير عند دمجه مع ACR المنسوخ جغرافيا لسحب البيانات الاصطناعية من المنطقة الأقرب إلى مورد Azure. بالإضافة إلى ذلك، يمكنك استخدام جميع ميزات الأمان التي تقدمها ACR، بما في ذلك الشبكات الخاصة وتكوين جدار الحماية وكيانات الخدمة والمزيد. للحصول على معلومات كاملة حول استخدام المحتوى العام مع ACR Artifact Cache، راجع البرنامج التعليمي ل Artifact Cache .

استيراد الصور إلى تسجيل حاويات Azure

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

كخطوة موصى بها لمرة واحدة، قم باستيراد الصور الأساسية والمحتوى العام الآخر إلى سجل حاوية Azure. يدعم الأمر az acr import في Azure CLI استيراد الصور من السجلات العامة، مثل Docker Hub وMicrosoft Container Registry، ومن سجلات الحاويات الخاصة.

az acr import لا يتطلب تثبيت Docker محليا. يمكنك تشغيله من خلال تثبيت محلي لـ Azure CLI أو مباشرة في Azure Cloud Shell. وهو يدعم الصور من أي نوع نظام تشغيل، أو صور متعددة المعمار، أو عناصر OCI مثل مخططات Helm.

بناءً على احتياجات مؤسستك، يمكنك الاستيراد إلى سجل مخصص أو مستودع في سجل مشترك.

az acr import \
  --name myregistry \
  --source docker.io/library/hello-world:latest \
  --image hello-world:latest \
  --username <Docker Hub username> \
  --password <Docker Hub token>

تحديث مراجع الصور

يجب على مطوري صور التطبيق التأكد من أن كودهم يشير إلى المحتوى المحلي الخاضع لسيطرتهم.

  • قم بتحديث مراجع الصور لاستخدام التسجيل الخاص. على سبيل المثال، قم بتحديث عبارة FROM baseimage:v1 في Dockerfile إلى FROM myregistry.azurecr.io/mybaseimage:v1 لسجل غير DNL أو FROM myregistry-abc123.azurecr.io/mybaseimage:v1 لسجل يدعم DNL. لمزيد من التفاصيل حول خيارات DNL أثناء إنشاء السجل والآثار المترتبة على اسم DNS، راجع التشغيل السريع - إنشاء سجل في المدخل.
  • تكوين بيانات الاعتماد أو آلية مصادقة لاستخدام التسجيل الخاص. تعتمد الآلية الدقيقة على الأدوات التي تستخدمها للوصول إلى السجل وكيفية إدارة وصول المستخدم.
    • إذا كنت تستخدم مجموعة Kubernetes أو خدمة Azure Kubernetes للوصول إلى السجل، فشاهد سيناريوهات المصادقة.
    • تعرف على المزيد حول خيارات المصادقة باستخدام سجل حاوية Azure.

أتمتة تحديثات صور التطبيق

لأتمتة إنشاءات صورة التطبيق عند تحديث الصور الأساسية، قم بإعداد مهمة Azure Container Registry. يتوسع هذا النهج في استيراد الصور. يمكن لمهمة الإنشاء التلقائي تعقب كل من تحديثات الصورة الأساسية وتحديثات التعليمات البرمجية المصدر.

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

إشعار

يمكن لمهمة واحدة تم تكوينها مسبقًا أن تعيد تلقائيًا بناء كل صورة تطبيق تشير إلى صورة أساسية تابعة.

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