প্রশ্ন কিভাবে আমি সিস্টেম বুট এ স্বয়ংক্রিয়ভাবে ডকার কনটেইনার শুরু করবেন?


সিস্টেম বুট আপ স্বয়ংক্রিয়ভাবে ডকার কনটেইনার শুরু করার জন্য একটি ভাল উপায় কি?

উবুন্টু 14.04 এ এটি করার জন্য একটি পছন্দসই উপায় আছে কি?

আমি ব্যবহার করেছি supervisord অতীতে স্বয়ংক্রিয় শুরু ওয়েব অ্যাপ্লিকেশন। কিন্তু যে ডকার জন্য সঠিক জিনিস মনে হয় না।


100
2017-10-02 14:25


উত্স




উত্তর:


দৃশ্যত, ডকার কন্টেইনারগুলি স্বয়ংক্রিয়ভাবে শুরু করার জন্য বর্তমান পদ্ধতি (ডকার 1.2 থেকে) ব্যবহার করা হয় নীতি পুনর্সূচনা। এটি প্রস্থান করার সময় ডোকারটি কন্টেইনারের শুরুতে এবং কনটেইনারটি পুনরায় শুরু করার পরে কীভাবে শুরু হওয়া উচিত তা নিয়ন্ত্রণ করবে। আমি এখন পর্যন্ত 'সর্বদা' বিকল্পটি ব্যবহার করেছি, এবং এটি নিশ্চিত করতে পারে যে ডকার স্বয়ংক্রিয়ভাবে সিস্টেম বুটে কন্টেইনারটি শুরু করে:

sudo docker run --restart=always -d myimage

ডকুমেন্টেশন সংক্ষিপ্ত বিবরণ

নীতিগুলি পুনঃসূচনা করুন - ডকারে চালানোর জন্য --restart পতাকা ব্যবহার করে আপনি পারেন   কিভাবে একটি ধারক করা উচিত বা না হওয়া উচিত একটি পুনর্সূচনা নীতি উল্লেখ করুন   প্রস্থান উপর পুনরায় আরম্ভ।

না - এটি ছাড়ার সময় ধারক পুনরায় আরম্ভ করবেন না।

অন-ব্যর্থতা - যদি শূন্য শূন্যস্থান ছাড়াই কেবলমাত্র কন্টেইনারটি পুনরায় চালু করুন   প্রস্থান অবস্থা।

সর্বদা - প্রস্থান অবস্থা সত্ত্বেও সর্বদা কন্টেইনার পুনরায় আরম্ভ করুন।

আপনি সর্বোচ্চ পরিমাণে ডকার চেষ্টা করেও নির্দিষ্ট করতে পারেন   অন-ব্যর্থতা নীতি ব্যবহার করে কন্টেইনারটি পুনরায় চালু করুন। ডিফল্ট হয়   যে ডকার কনটেইনার পুনরায় আরম্ভ করার জন্য চিরতরে চেষ্টা করবে।

$ sudo docker run --restart=always redis

এই redis চালানো হবে   কন্টেনার সবসময় একটি পুনর্সূচনা নীতি যাতে যাতে পাত্রে   প্রস্থান, ডকার এটি পুনরায় আরম্ভ করা হবে।

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

এই চালানো হবে   ব্যর্থতা এবং সর্বাধিক একটি পুনর্সূচনা নীতি সঙ্গে redis ধারক   10 গুন পুনরায় আরম্ভ করুন। যদি redis ধারক একটি অ-শূন্য প্রস্থান সঙ্গে exits   সারিতে 10 গুণের বেশি অবস্থা ডকার পুনরায় শুরু করার চেষ্টা বন্ধ করবে   ধারক। সর্বাধিক পুনরায় আরম্ভ সীমা প্রদান শুধুমাত্র জন্য বৈধ   অন ​​ব্যর্থতা নীতি।


121
2017-12-07 20:18



"সর্বদা - প্রস্থান অবস্থা সত্ত্বেও কন্টেইনারটি সর্বদা পুনরায় শুরু করুন" একটু বিভ্রান্তিকর। কন্টেইনারটি নিজে থেকে প্রস্থান / বন্ধ করলে এটি কনটেইনারটিকে পুনরায় চালু করবে না, যা আমি খুঁজছেন এমন আচরণ। - w00t
অসাধারণ! ধন্যবাদ, এখন চেষ্টা করুন। - zx1986
নোট: অন্য নীতি বলা হয় unless-stopped আমার স্নাতকের. এটা মত কাজ করে always কিন্তু যদি কন্টেইনারটি বন্ধ হয়ে যায় এবং সিস্টেমটি পুনরায় বুট করা হয় বা ডকার ডিমন পুনরায় চালু হয়, তবে কন্টেইনারটি পুনরায় চালু হবে না। সব 4 অপশন একটি সুন্দর লেখা জন্য এখানে দেখুন blog.codeship.com/... - David Morales
অবশ্যই, দী docker ডেমন অবশ্যই এটি সমর্থন করতে শুরু করবে। - sherrellbc


ডকার আছে এই পৃষ্ঠা এটি আপাতত এবং systemd এর সাথে কীভাবে করা যায় তা ব্যাখ্যা করে। আমি এটা ডকারের জন্য সঠিক জিনিস বলে মনে হচ্ছে না যে একমত। তাদের সমাধান চালানো হয় docker startযা অনুমান করে যে আপনি ইতিমধ্যে আপনার ধারক তৈরি করেছেন। আমি মনে করি তুমিও করবে docker run --rm আপার্ট স্ক্রিপ্টে (এটি একটি চিত্র থেকে একটি ব্র্যান্ড নতুন প্রক্রিয়া এবং ধারক মত আচরণ করা) বা কেবল ডকার ডিমনকে বুটগুলিতে কনটেইনারগুলিকে পুনরায় চালু করতে দিন (যদি আপনি অন্য কিছু না করেন তবে এটি ডিফল্টভাবে হবে)। Upstart এর প্রসেসগুলির সহজ স্টার্ট / স্টপ অনুমোদনের সুবিধা রয়েছে, তবে আপনি ডকারের স্টার্ট / স্টপের সাথেও এটি পান!

আমি মনে করি এটি আপার স্ক্রিপ্টটি কাজ করার আগে ব্যবহারকারীটিকে ম্যানুয়ালি একটি কনটেইনার (সমস্ত সঠিক পোর্ট / ভলিউম বাইন্ডিং সহ) তৈরি করতে বাধ্য করবে।


7
2017-10-14 04:49





কিন্তু যে ডকার জন্য সঠিক জিনিস মনে হয় না।

কেন না?

আমি মহান সাফল্য সঙ্গে এই জন্য সুপারভাইজার ব্যবহার।

আপনি যা জানেন তা ব্যবহার করুন, কী কাজ করে তা ব্যবহার করুন, এমন কিছু ব্যবহার করুন যা আপনি সহজে বজায় রাখতে এবং বুঝতে পারবেন।


4
2017-10-02 14:27



ধন্যবাদ @ ইইএএএ .. এর অর্থ কি আপনি তাদের অ-ডেমন মোডে চালান? এছাড়াও আপনি তাদের সঙ্গে চালানোর প্রয়োজন যে মানে না --rm ? - Stefan Arentz
আমি ফোরগ্রাউন্ড মোডে কন্টেইনার চালাতে এবং সুপারভাইজার্ড স্টডাউট / stderr ধরা যাক। আমি কেন নিশ্চিত নই --rm এখানে প্রাসঙ্গিক। - EEAA
@ ইইএএএ: আপনার প্রশ্ন সম্পর্কে: কিছু মানুষের জন্য, docker জন্য একটি প্রতিস্থাপন করা হয় lxc অথবা openvz যা আছে lxc.start.auto = 1 এবং vzctl set --onboot yes। এছাড়াও ESXi এবং অন্যান্য ভার্চুয়ালাইজেশান সমাধান যেমন একটি বৈশিষ্ট্য আছে। লরেন্সের মতো, আমিও মনে করি না যে একটি অটোস্টার্ট বৈশিষ্ট্যটি বিতরণ-নির্দিষ্ট ভাবে প্রয়োগ করা উচিত কারণ একটি ডকার ব্যবহারকারী প্রতিটি প্ল্যাটফর্মের একই জ্ঞান সহ একই সমস্যা সমাধান করতে সক্ষম হওয়া উচিত। - Daniel Alder
ঠিক আছে, হোকার চলমান কন্টেইনার থেকে হোস্টকে ডিকুলার করার দুর্দান্ত উপায়, তাই হোস্ট-নির্দিষ্ট কনফিগারেশনের ব্যবহারটি একটি পদক্ষেপের পিছনে একটি বিট। - nijave