डॉकटर दुनिया में अलग क्या है? मैं इस लेख लिंक को पढ़ता हूं , लेकिन यह बिल्कुल स्पष्ट नहीं करता है कि अलग मोड का क्या मतलब है।
डॉकटर दुनिया में अलग क्या है? मैं इस लेख लिंक को पढ़ता हूं , लेकिन यह बिल्कुल स्पष्ट नहीं करता है कि अलग मोड का क्या मतलब है।
जवाबों:
आप एक -dविकल्प के साथ एक अलग कंटेनर में डॉक कंटेनर शुरू कर सकते हैं । तो कंटेनर शुरू होता है और पृष्ठभूमि में चलता है। इसका मतलब है, आप कंटेनर शुरू करते हैं और अन्य कमांड के लिए स्टार्टअप के बाद कंसोल का उपयोग कर सकते हैं।
अलग मोड के विपरीत अग्रभूमि मोड है। वह डिफ़ॉल्ट मोड है, जब -dविकल्प का उपयोग नहीं किया जाता है। इस मोड में, आप जिस कंसोल को निष्पादित करने के लिए उपयोग कर रहे हैं, वह docker runमानक इनपुट, आउटपुट और त्रुटि से जुड़ा होगा। इसका मतलब है कि आपका कंसोल कंटेनर की प्रक्रिया से जुड़ा हुआ है।
अलग मोड में, आप अपने डॉक कंटेनर के मानक आउटपुट का अनुसरण कर सकते हैं docker logs -f <container_ID>।
बस दोनों विकल्पों का प्रयास करें। मैं हमेशा अपने कंटेनरों को चलाने के लिए अलग मोड का उपयोग करता हूं। मुझे उम्मीद है कि मैं इसे थोड़ा स्पष्ट कर सकता हूं।
docker logs -f [container_ID] > logs.txt। यदि यह नीचे दिए गए कार्य को जोड़ने का प्रयास नहीं करता है, तो नीचे @BMitch द्वारा सुझाए गए डॉकटर कंटेनर को शुरू करते समय ध्वज।
Docker कमांड लाइन पर डिटैच ऑप्शन बताता है कि docker क्लाइंट ( docker) सर्वर ( dockerd) से रिक्वेस्ट करेगा , और फिर क्लाइंट तब बाहर निकलेगा जब तक कि सर्वर पर रिक्वेस्ट जारी रहती है। भ्रम का हिस्सा यह हो सकता है कि डॉकटर एक एकल प्रक्रिया की तरह दिखता है, जहां वास्तव में यह एक क्लाइंट / सर्वर एप्लिकेशन है, जहां क्लाइंट सर्वर पर हर कमांड भेजने के लिए REST API पर सिर्फ एक पतली सीमारेखा है।
एक के साथ docker container run --detach, इसका मतलब है कि कंटेनर बनाया जाएगा, सर्वर एक सफल होने पर कंटेनर आईडी के साथ प्रतिक्रिया देगा, और कंटेनर सर्वर पर चलना जारी रखेगा, जबकि आप अन्य कमांड चलाने के लिए स्वतंत्र हैं। यह अक्सर एक सर्वर (जैसे नगनेक्स) के लिए उपयोग किया जाता है जिसे आप अन्य कमांड को जारी रखने के दौरान पृष्ठभूमि में शुरू करना चाहते हैं। ध्यान दें कि आप अभी भी कंटेनर --interactiveऔर -ttyविकल्पों (अक्सर संक्षिप्त -it) के साथ कॉन्फ़िगर कर सकते हैं और बाद में docker container attachपहले से चल रहे कंटेनर से कनेक्ट करने के लिए चला सकते हैं। (ध्यान दें, जब तक आप कंटेनर के साथ नहीं जुड़ते, तब तक -itdस्टड से पढ़ने के लिए कंटेनर द्वारा किसी भी प्रयास को लटका दिया जाएगा, इनपुट के अंत को देखने के बजाय जो अक्सर बस से गुजरने पर तत्काल बाहर निकलता है -d।)
यदि आप डिटैच ऑप्शन के बिना चलते हैं, तो क्लाइंट तुरंत कंटेनर बनाए जाने के बाद एक अटैच एपीआई कॉल चलाएगा ताकि आप आउटपुट देख सकें और वैकल्पिक रूप से कंटेनर पर रनिंग प्रोसेस को इनपुट प्रदान कर सकें। यह तब उपयोगी होता है जब आपका कंटेनर कुछ संवादात्मक (जैसे /bin/bash) चल रहा हो ।
कई अन्य कमांड अलग करने के विकल्प की अनुमति देते हैं, जिसमें docker-compose up -dएक पूरी परियोजना शुरू करना और इसे पृष्ठभूमि में सर्वर पर चलना छोड़ना होगा। docker serviceसेवा के लक्ष्य स्थिति बनाने या अपडेट करने के लिए सर्वर में परिवर्तन सबमिट करने के बाद या तो बहुत सी कमांड होंगी, या यदि आप अलग नहीं होते हैं, तो ग्राहक तब तक इंतजार करेगा जब तक सेवा की वर्तमान स्थिति लक्ष्य स्थिति से मेल नहीं खाती और आप देख सकते हैं तैनाती की प्रगति। docker serviceआदेशों के साथ ध्यान दें , आपको --detach=falseसंलग्न रहने के लिए पास करना पड़ सकता है , आपके संस्करण के आधार पर व्यवहार पिछले एक साल में बदल गया है।
--detach-keys)
--interactiveऔर --tty(उर्फ -it) उस काम के लिए।
docker run -d -t ubuntu:14.04
docker run - docker कंटेनर से docker की इमेज से एक उदाहरण बनाएं। (यदि छवि स्थानीय रूप से उपलब्ध नहीं है तो यह docker हब से खींचती है) ubuntu - छवि का नाम
14.04 - टैग
-d, --detach - डिटैच मोड
-टी, शेट्टी - एक छद्म-टीटीवाई आवंटित करें