मैं सिस्टम रिबूट पर डॉकटर कंटेनर को ऑटोस्टार्ट कैसे कर सकता हूं?


46

जैसा कि मैंने डॉकटर कंटेनरों में एक वर्डप्रेस साइट की मेजबानी की है और मैं चाहता हूं कि इन कंटेनरों को हमेशा बूट समय पर शुरू किया जाए, इसलिए इसे मैन्युअल रूप से करने की आवश्यकता है।


आप किस ubuntu संस्करण का उपयोग करते हैं?
Maythux

ubuntu सर्वर 14.04
नयन तिवारी


Crossposted। चीजों को पोस्ट करने के लिए कृपया एक साइट चुनें, कई नहीं।
थॉमस वार्ड

जवाबों:


34

अब तक मुझे नहीं लगता कि सामान्य रूप से ऐसा करने का कोई तरीका है। पुनरारंभ नीति का उपयोग करने के लिए एक मुश्किल समाधान है

sudo docker run --restart=always -d your_image

इसका मतलब यह है कि जब भी आप इसे बंद करते हैं तो यह आपके कंटेनर से बाहर निकल जाएगा, जैसे ही आप अपना मेजबान शुरू करते हैं तो यह डॉकटर को पुनः आरंभ करता है।


के रूप में मैं इसके बारे में खोज वहाँ महाराज लेकिन उनके उपयोग का तरीका न पता है कि जैसे कुछ स्वचालन उपकरण हैं
नयन तिवारी

यह अभी भी उबंटू के लिए प्रायोगिक तौर पर github.com/bflad/chef-docker/blob/master/README.md
Maythux

2
इसके लिए सिस्टम की संभावनाओं का उपयोग क्यों नहीं किया गया? upstart और systemd दोनों इससे पूरी तरह निपट सकते हैं
Reishin

29

मौजूदा कंटेनर पर पुनरारंभ नीति को जोड़ने के लिए यह एक बहुत ही सामान्य उपयोग मामला है।

यह निम्नलिखित कमांड के साथ किया जा सकता है: docker update --restart {no,on-failure,unless-stopped,always} container_name

अधिक विवरण: डोकर - कंटेनर को स्वचालित रूप से शुरू करें


2
इससे मेरी समस्या पूरी तरह हल हो गई! मैं अपने डेटाबेस के साथ एक कंटेनर था, और चाहता था कि जब मेरा मैक शुरू हो जाए। यह निर्दिष्ट करके कि इसकी छवि को हमेशा पुनरारंभ किया गया (जब तक रोका नहीं गया), इसने यह चाल चली!
कॉलिन

21

Ubuntu 15 के रूप में अब इस प्रबंधक के लिए systemd, नमूना का समर्थन करता है:

someservicename.service

[Unit]
Description=Some service
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a container_name
ExecStop=/usr/bin/docker stop -t 2 container_name

[Install]
WantedBy=multi-user.target

Docker साइट पर अधिक उपलब्ध है

पुनश्च सुंदर प्यारा विन्यास :)


4

मैंने जो किया वह अपस्टार्ट फाइलों का उपयोग करना है।

आप डॉकर वेबसाइट में कुछ उदाहरण और अन्य समाधान पा सकते हैं ।

एक फाइल बनाएं जैसे कि / etc / init:

Description "My container"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
   /usr/bin/docker start -a mycontainer
end script
pre-stop script
  /usr/bin/docker stop mycontainer
end script

ध्यान दें, डॉकर 1.2 से, पुनः आरंभ करने की नीतियाँ हैं जो डॉकटर सेवा चलने पर (उदाहरण के लिए बूट होने के बाद) स्वचालित रूप से कंटेनरों को पुनः आरंभ करने में मदद कर सकती हैं।

वैयक्तिक, मैं अपने कार्य केंद्र का प्रावधान करने के लिए कठपुतली का उपयोग करता हूं और इस डॉकर मॉड्यूल का उपयोग स्वचालित रूप से स्टार्टअप स्क्रिप्ट बनाने के लिए करता हूं जो अधिक पूर्ण हैं (प्रारंभ, रोक, पुनरारंभ, स्वच्छ विकल्प ...)


1
ऊपरवाला मर चुका है। प्रणाली का उपयोग करें।
अमीरहोसिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.