2015-05-26 5 views
14

पहनना पड़ता है मैं एक डोकर कंटेनर है कि मैं चलाना चाहते है, तो मैंमैं सिस्टम बूट पर स्वचालित रूप से डॉकर कंटेनर कैसे प्रारंभ करूं?

$ docker run ... 

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

यदि हां, तो क्या यह डॉकर कंपोज़ में भी उपलब्ध है?

+0

मैं इस प्रश्न को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह पहले से ही सर्वरफॉल्ट पर http: // serverfa पर है ult.com/questions/633067/how-do-i-auto-start-docker-containers-at-system-boot –

+2

@DanDascalescu यह प्रश्न यहां रहना चाहिए: "यदि आपका प्रश्न आम तौर पर कवर होता है ... सॉफ़्टवेयर टूल आमतौर पर प्रोग्रामर द्वारा उपयोग किए जाते हैं ... तो आप अपने प्रश्न पूछने के लिए सही जगह पर हैं! " प्रोग्रामर –

उत्तर

27

हां, डॉकर restart policies जैसे docker run --restart=always है जो इसे संभालेगा। यह compose.yml config file में restart: always के रूप में भी उपलब्ध है।

+2

के रूप में सर्वरफॉल्ट की तुलना में स्टैक लिंक पर क्लिक करने के लिए बहुत अधिक इच्छुक यह पहला और स्वीकार्य उत्तर है, हालांकि संभवतः उस सुविधा की खोज करने वाले अधिकांश लोग वास्तव में एक सेवा के रूप में अपने कंटेनर को चलाने के लिए चाहते हैं। [@kon का उत्तर सेवा प्रबंधक के रूप में 'Systemd' का उपयोग करके] [http://stackoverflow.com/a/39493500/3197383) उस उद्देश्य के लिए सबसे अच्छे समाधानों में से एक है और अधिक अपवर्तक की आवश्यकता है। –

+1

यह मुझे काम नहीं करता है। मेरे पास "crmpicco-mysql" नामक एक कंटेनर है और मैंने 'डॉकर रन --restart = हमेशा crmpicco-mysql' चलाया और मुझे त्रुटि मिली:' छवि ढूंढने में असमर्थ 'crmpicco-mysql: नवीनतम' स्थानीय रूप से '। – crmpicco

+0

आपकी त्रुटि असंबंधित है। आप एक अलग सवाल पोस्ट करना चाह सकते हैं लेकिन ऐसा लगता है कि आप डॉकर छवि के नाम और डॉकर कंटेनर नामों को भ्रमित कर रहे हैं। 'डॉकर रन' कमांड उस छवि के नाम की अपेक्षा करता है जिसे आप 'डॉकर छवियों' के माध्यम से सूचीबद्ध कर सकते हैं। –

20

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

$ docker pull alexeiled/docker-oracle-xe-11g 
$ docker run -d --name=MYPROJECT_oracle_db --shm-size=2g -p 1521:1521 -p 8080:8080 alexeiled/docker-oracle-xe-11g 
$ vim /etc/systemd/system/docker-MYPROJECT-oracle_db.service 

और निम्नलिखित सामग्री जोड़ने: स्टार्टअप

sudo systemctl enable docker-MYPROJECT-oracle_db.service 

पर

[Unit] 
Description=Redis container 
Requires=docker.service 
After=docker.service 

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

[Install] 
WantedBy=default.target 

सेवाओं और सक्षम और अधिक जानकारियां लिए https://docs.docker.com/engine/admin/host_integration/

संबंधित मुद्दे