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


113

সিস্টেম বুট হয়ে গেলে ডকারের পাত্রে স্বয়ংক্রিয়ভাবে শুরু করার ভাল উপায় কী?

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

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

উত্তর:


136

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

sudo docker run --restart=always -d myimage

ডকুমেন্টেশন অংশ

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

না - কনটেইনারটি বের হয়ে গেলে পুনরায় চালু করবেন না।

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

সর্বদা - প্রস্থান স্থিতি নির্বিশেষে সবসময় ধারকটি পুনরায় চালু করুন।

অন-ব্যর্থতা নীতি ব্যবহার করার সময় ডকারের ধারকটি পুনঃসূচনা করার জন্য সর্বাধিক পরিমাণ উল্লেখ করতে পারেন। ডিফল্ট হ'ল ডকার কনটেইনারটি পুনরায় আরম্ভ করার জন্য চিরতরে চেষ্টা করবে।

$ sudo docker run --restart=always redis

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

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

এটি অন-ব্যর্থতার পুনঃসূচনা নীতি এবং সর্বাধিক ১০ টি পুনঃসূচনা গণনা সহ রেডিস কনটেইনারটি চালাবে the সর্বাধিক পুনঃসূচনা সীমা সরবরাহ করা কেবলমাত্র অন-ব্যর্থতার নীতিতে বৈধ।


12
"সর্বদা - প্রস্থান স্থিতি নির্বিশেষে সবসময় ধারক পুনরায় চালু করুন" কিছুটা বিভ্রান্তিকর। আপনি নিজে থেকে কন্টেইনারটি প্রস্থান / বন্ধ করলে এই ধারকটি পুনরায় আরম্ভ হবে না, যা আমি খুঁজছিলাম এমন আচরণ।
w00t

12
দ্রষ্টব্য: নামক আরেকটি নীতি unless-stoppedযুক্ত করা হয়েছিল। এটি এর মতো কাজ করে alwaysতবে কনটেইনারটি বন্ধ হয়ে গেলে এবং সিস্টেমটি পুনরায় চালু করা হয় বা ডকার ডিমন পুনরায় চালু হয়, তবে ধারকটি পুনরায় আরম্ভ হবে না। সমস্ত 4 অপশন ব্লগকোডশিপ.কমের
ডেভিড মোরালেস

4
dockerঅবশ্যই এটি সমর্থন করার জন্য ডিমনকে স্বয়ংক্রিয়ভাবে শুরু করতে হবে।
sherrellbc

আমি মনে করি যে প্রশ্নটি "সিস্টেম বুট অন" জিজ্ঞাসা করছে, যার অর্থ শারীরিক বা ভার্চুয়াল সার্ভারটি পুনরায় বুট করার পরে, কীভাবে কনটেইনারগুলি স্বয়ংক্রিয়-পুনঃসূচনা হবে, ধরে নেওয়া যায় যে সার্ভার পুনরায় বুট করার পরে ডকার ইঞ্জিন পুরোপুরি চলছে?
রুট লুপ

8

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

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


লিঙ্কটি নষ্ট হয়ে গেছে ... এটি সম্ভাব্য প্রতিস্থাপনের মতো বলে মনে হচ্ছে তবে এটি অবশ্যই "কীভাবে" তা দেখায় না
গার্ট ভ্যান ড্যান বার্গ

ধন্যবাদ, আমি একটি অনুরূপ পৃষ্ঠায় লিঙ্কটি স্থির করেছি, তবে আমি নিশ্চিত হতে পারি না যে এটি একই কাজটি আসলটি করেছে।
লরেন্স কেষ্টলুট

6

তবে ডকারের পক্ষে এটি সঠিক জিনিস বলে মনে হয় না।

কেন না?

আমি দুর্দান্ত সাফল্যের সাথে এর জন্য সুপারভাইজার ব্যবহার করি।

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


ধন্যবাদ @EEAA .. এর অর্থ কি আপনি এগুলি ডি -মন মোডে চালাচ্ছেন? এর অর্থও এই নয় যে আপনার এগুলি চালানো দরকার --rm?
স্টিফান আরেন্টজ

আমি পটভূমি মোডে পাত্রে চালিত এবং সুপারভাইজার stdout / stderr ধরতে দেয়। আমি নিশ্চিত না কেন --rmএখানে প্রাসঙ্গিক।
EEAA

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

1
ডান, ডকার হ'ল হোস্টটিকে কনটেইনারগুলি থেকে চালিত করার এক দুর্দান্ত উপায় তাই হোস্ট-নির্দিষ্ট কনফিগারেশনটি ব্যবহার করা কিছুটা পিছনের দিকে।
নিজাভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.