المشكلة هي أن restart: always لا يبدو أن السياسة تعمل عندما أقتل الحاوية (محاكاة تعطل التطبيق باستخدام docker kill) وعامل الميناء-يؤلف لا إعادة تشغيل حاوية بلدي ، على الرغم من أن رمز الخروج هو 137. ألاحظ نفس السلوك عند استخدام restart: on-failure سياسة. الإصدارات 2 و 3 من عامل الميناء-يؤلف تتصرف نفسها. نظام بلدي هو خادم أوبونتو 16.04 س 64.
أسئلتي هي:
لماذا عامل الميناء-يؤلف لا إعادة تشغيل تحطمت (قتل) حاوية?
كيفية التحقق مما إذا كانت سياسة إعادة التشغيل تعمل?
عند استخدام عامل الميناء قتل ، وهذا هو السلوك المتوقع كما عامل الميناء لا إعادة تشغيل الحاوية: "إذا قمت بإيقاف حاوية يدويا ، يتم تجاهل نهج إعادة التشغيل حتى إعادة تشغيل الخفي عامل الميناء أو إعادة تشغيل الحاوية يدويا. هذه محاولة أخرى لمنع حلقة إعادة التشغيل" (المرجع)
إذا كنت تستخدم عامل الميناء توقف أو عامل الميناء قتل ، كنت وقف الحاوية يدويا. يمكنك القيام ببعض الاختبارات حول سياسات إعادة التشغيل: إعادة تشغيل الخفي عامل الميناء ، إعادة تشغيل الخادم الخاص بك ، وذلك باستخدام سمد داخل حاوية وتشغيل الخروج...
على سبيل المثال إذا كنت قتل حاوية بلدي نشرها مع سياسة إعادة التشغيل ، أرى أنه خرج مع رمز 137 ولكن لا يتم إعادة تشغيله وفقا لعامل الميناء بس-أ، فإنه لا يزال خرجت:
[root@andromeda ~]# docker ps --allCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES819d1264c30a redis:alpine "docker-entrypoint..." 3 minutes ago Exited (137) 34 seconds ago keepalive_redis_1
ولكن إذا قمت بإعادة تشغيل البرنامج الخفي...
[root@andromeda ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES819d1264c30a redis:alpine "docker-entrypoint..." 30 minutes ago Up 2 seconds 6379/tcp keepalive_redis_1
الحاوية التي تم تعيينها مع سياسة إعادة التشغيل ، يبدأ مرة أخرى وهو ما تقول الوثائق ، لذلك عامل الميناء قتل ليست الطريقة التي يجب اختبار سياسة إعادة التشغيل كما يفترض أن كنت قد توقفت عمدا الحاوية وعامل الميناء يريد أن يكون وسيلة لمنع إعادة تشغيل الحلقات ، إذا كنت قتله ، كنت تريد حقا لقتله.
لقد وجدت الروابط التالية ذات قيمة تظهر نفس السلوك في إصدارات مختلفة (لذلك ليس خطأ ولكن السلوك المتوقع):
كنت هناك عدة مرات ، ولكن كما ترون ، فإن الوثائق ليست قوية وليس هناك تفسير لكيفية عمل هذه الميزة ، لهذا السبب سألت سؤالا - أود أن أرى إجابة من شخص لديه خبرة عملية في هذا المجال.