لا يكتمل سحب الصورة بمجرد نجاح الاتصال بسجل ECR خاص. يوفّر ECR البيان، بينما يخزّن Amazon S3 طبقات الصورة. لذلك قد يؤدي تجاوز الوكيل الذي يغطي السجل فقط إلى أن يسلك تنزيل الطبقات مسارًا مختلفًا.

للوصول الخاص عبر نقاط نهاية VPC، تحقّق من المسارين معًا:

  • نقطة نهاية واجهة ECR وإعدادات DNS الخاصة بها.
  • نقطة نهاية S3 وجداول التوجيه المرتبطة بها والسياسة التي تسمح بالوصول إلى حزمة طبقات ECR.

ثم ضع أسماء التجاوز ذات الصلة على العملية التي تنفّذ السحب. بالنسبة إلى Docker Engine الأصلي مع إعداد وكيل قائم في daemon.json، يوضّح ما يلي إعدادًا لمنطقة us-east-2:

{
  "proxies": {
    "http-proxy": "http://proxy.example:8080",
    "https-proxy": "http://proxy.example:8080",
    "no-proxy": "123456789012.dkr.ecr.us-east-2.amazonaws.com,prod-us-east-2-starport-layer-bucket.s3.us-east-2.amazonaws.com"
  }
}

ادمج الإدخالات المقصودة مع بقية إعدادات الـ daemon وقائمة التجاوز الموجودة. إذا كان من الممكن أن تستخدم عمليات سحب أخرى من سجلات عامة وسيطًا عامًا، فإن قائمة وكلاء HTTP توفّر مرشّحين لعناوين الوكيل التي لا تحتاج إلى حساب؛ مع الحفاظ على تجاوزَي ECR وS3 الخاصين. استبدل الحساب والمنطقة واسم مضيف تنزيل الطبقات بالأسماء المستخدمة فعليًا في السحب. قد تختلف صيغ تسمية S3 وإعدادات نقاط النهاية؛ هذا المثال ليس قائمة شاملة لنقاط نهاية AWS. يتطلب تطبيق إعداد الـ daemon إعادة تشغيل الـ daemon المقصود. يستخدم Docker Desktop إعدادات الوكيل الخاصة به.

التجاوز يختار مسارًا مباشرًا. لا يمكنه إنشاء نقطة نهاية S3 مفقودة، أو ربط جدول توجيه، أو منح الوصول إلى الحزمة، أو إصلاح DNS الخاص. تحقّق من هذه التبعيات قبل توسيع التجاوز إلى نطاقات AWS الواسعة.

إعدادات الوكيل للحاويات في عميل Docker لا تُعدّ تنزيلات الصور في الـ daemon. وبالمثل، فإن أمر AWS CLI الذي يحصل على بيانات اعتماد تسجيل الدخول إلى ECR له إعداد وكيل خاص به؛ أدرج وجهة API الخاصة به إذا كان ذلك الطلب المنفصل يحتاج أيضًا إلى وصول خاص.

مقالات ذات صلة