Moby: أمر Docker للتحقق مما إذا كانت صورة الحاوية المحلية قديمة؟

تم إنشاؤها على ١٠ فبراير ٢٠١٧  ·  3تعليقات  ·  مصدر: moby/moby

قل مقارنة بالصورة البعيدة على dockerhub. لقد كنت أبحث عن طريقة أساسية للقيام بذلك ، ولكن كل ما تمكنت من العثور عليه هو نصوص bash هشة وما شابه. لا يوجد طريقة رسمية موصى بها للقيام بهذا الفحص. لم ينتج عن سؤال تجاوز سعة المكدس أي إجابات محددة حتى الآن. ليس لديه هذا السؤال المماثل .

أن تكون قادرًا على التحقق مما إذا كانت الصورة المحلية قديمة مقارنة بجهاز التحكم عن بُعد الخاص بها ، فهي مفيدة جدًا لبيئات التطوير والتشغيل المرحلي (يسمح لك عامل الإرساء السحابي بإعداد حاويات التحديث التلقائي لهذا الغرض). أعلم أن هناك إمكانية لاستخدام webhook لتشغيل إعادة سحب بعد بناء صورة ناجح ، ولكن دعنا نقول أنني أريد أن أكون قادرًا على بدء الفحص من الخادم الخاص بي ، بدلاً من الاضطرار إلى الاستماع إليه.

هل أنا محق في افتراض أنه لا يوجد أمر عامل ميناء متاح حاليًا لإجراء هذا الفحص ، أو هل فاتني حل أصلي واضح لرسو السفن لهذه المشكلة؟

aredistribution areimages kinquestion

التعليق الأكثر فائدة

على الرغم من ذلك ، هناك فرق بين "التحديث الأعمى" والحصول على إشعار فقط بتغيير الصورة البعيدة (باستخدام نفس العلامة) ، بحيث يمكنك بدء الإنشاء وعملية ضمان الجودة.

ال 3 كومينتر

لا ، لا يوجد حاليًا خيار مضمّن للتحقق مما إذا كانت الصورة "قديمة". إن التحديث التلقائي للحاويات أمر يختلف حقًا حسب حالة الاستخدام ؛ التحديث "الأعمى" إلى أحدث صورة ليس بالأمر السهل. على سبيل المثال ، يمكن أن ينتج عن some-image:latest صورة مختلفة _completely_ (على سبيل المثال ، ubuntu:latest يشير إلى أحدث إصدار من "LTS" ، والذي تحول في وقت ما من 14.04 إلى 16.04) ، في نفس الوقت ، some-image:1.2.3 "يبدو" مثل علامة SemVer (ish) ، ولكن ليس هناك ضمان ، لأن الأمر متروك لمؤلف الصورة لاتخاذ قرار بشأن كل من مخطط "العلامات" وما يعنيه (بشكل أساسي ، العلامات هي مجرد مجانية شكل "التسمية").

لهذا السبب ، يوصى باستخدام معرف غير قابل للتغيير للحاويات الخاصة بك (على سبيل المثال ubuntu<strong i="9">@sha256</strong>:aabbbcccddd ) ؛ يسمح لك باختبار_ إصدار الصورة الدقيق الذي تقوم بتشغيله ، ويضمن أنه الإصدار _نفس_ كما تم اختباره في عملية ضمان الجودة.

بعد قولي هذا ، هناك بعض الخيارات ؛

  • عند استخدام docker compose ، يمكنك docker-compose pull لسحب أحدث إصدار من جميع الصور المستخدمة في مجموعة الإنشاء الخاصة بك
  • عند _building_ صور ، يمكنك docker build --pull ..... لفرض سحب الصورة المحددة بـ FROM قبل البدء في إنشاء
  • عند استخدام الخدمات ؛ يحل docker service update --force --image foo:bar <servicename> أحدث إصدار من صورة foo:bar المحددة ، و "تثبيت" جميع مثيلات الخدمة في هذا الإصدار

آمل أن يكون هذا يجيب عن سؤالك. يرجى أن تضع في اعتبارك أن أداة تعقب المشكلات على GitHub ليست مخصصة كمنتدى دعم عام ، ولكنها مخصصة للإبلاغ عن الأخطاء وطلبات الميزات. بالنسبة لنوع آخر من الأسئلة ، فكر في استخدام أحد ؛

سأغلق هذه المشكلة لأن هذا ليس خطأ ، لكن لا تتردد في مواصلة المحادثة 👍

على الرغم من ذلك ، هناك فرق بين "التحديث الأعمى" والحصول على إشعار فقط بتغيير الصورة البعيدة (باستخدام نفس العلامة) ، بحيث يمكنك بدء الإنشاء وعملية ضمان الجودة.

في الواقع. ستكون الآلية المستقرة التي يمكن من خلالها اكتشاف تحديثات للحاوية - بدون إعادة تنزيل الحاوية بأكملها كل يوم - رائعة.

تعد تحديثات الأمان مهمة للغاية ، ولا يؤدي فقدان هذه الميزة إلى تسهيل مواكبة التطورات ...

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات