كيف يمكنني لصناعة السيارات في بدء الحاويات عامل الميناء في تمهيد النظام?

ما هي طريقة جيدة لبدء حاويات عامل الميناء تلقائيا عند تشغيل النظام?

هل هناك طريقة مفضلة للقيام بذلك على أوبونتو 14.04?

لقد استعملت supervisord في الماضي لصناعة السيارات في بدء تطبيقات الويب. ولكن هذا لا يشعر وكأنه الشيء الصحيح لعامل الميناء.

على ما يبدو ، فإن الطريقة الحالية لصناعة السيارات في بدء حاويات عامل الميناء (من عامل الميناء 1.2) هو استخدام سياسات إعادة التشغيل. سيتحكم هذا في كيفية تعامل عامل الإرساء مع بدء الحاوية عند بدء التشغيل وإعادة بدء الحاوية عند خروجها. لقد استخدمت الخيار 'دائما' حتى الآن ، ويمكن التأكد من أنه يجعل عامل الميناء لصناعة السيارات في بدء الحاوية في تمهيد النظام:

sudo docker run --restart=always -d myimage

مقتطفات الوثائق

سياسات إعادة التشغيل باستخدام علامة إعادة التشغيل restart عند تشغيل عامل الإرساء ، يمكنك تحديد سياسة إعادة التشغيل لكيفية إعادة تشغيل الحاوية أو عدم إعادة تشغيلها عند الخروج.

لا-لا تقم بإعادة تشغيل الحاوية عند خروجها.

عند الفشل-أعد تشغيل الحاوية فقط إذا خرجت بحالة خروج غير صفرية.

دائما-أعد تشغيل الحاوية دائما بغض النظر عن حالة الخروج.

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

$ sudo docker run --restart=always redis

سيؤدي هذا إلى تشغيل حاوية رديس مع سياسة إعادة التشغيل دائما بحيث إذا خرجت الحاوية ، فسيقوم عامل الإرساء بإعادة تشغيلها.

$ sudo docker run --restart=on-failure:10 redis

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

عامل الميناء لديه هذه الصفحة وهذا ما يفسر كيفية القيام بذلك مع مغرور و سيستمد. أوافق على أنه لا يبدو وكأنه الشيء الصحيح لعامل الميناء. الحل هو لتشغيل docker start، الذي يفترض أنك قمت بالفعل بإنشاء الحاوية الخاصة بك. أعتقد أنك إما ستفعل docker run --rm في البرنامج النصي مغرور (التعامل معها مثل عملية العلامة التجارية الجديدة والحاوية من صورة) أو مجرد السماح الخفي عامل الميناء إعادة تشغيل الحاويات نفسها على التمهيد (كما سيكون افتراضيا إذا كنت لا تفعل شيئا آخر). مغرور لديه ميزة السماح سهلة بدء / إيقاف العمليات ، ولكن يمكنك الحصول على ذلك مع بدء عامل الميناء / إيقاف أيضا!

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

ولكن هذا لا يشعر وكأنه الشيء الصحيح لعامل الميناء.

لما لا?

يمكنني استخدام سوبيرفيسورد لهذا بنجاح كبير.

استخدم ما تعرفه ، استخدم ما ينجح ، استخدم شيئا يمكنك الحفاظ عليه وفهمه بسهولة.