2017-01-13 5 views
14

मैं Docker Swarm खेल रहा हूं, और के साथ docker-compose.yml का उपयोग कर रहा हूं। सभी सेवाओं को एक के अलावा तैनात किया जाता है, जो लंबित राज्य में रहता है। मैंने एक बाधा जोड़ दी है जो इस सेवा को नोड्स में से एक से जोड़ती है। मेरा सवाल इस विशेष समस्या के बारे में इतना कुछ नहीं है, लेकिन समस्या निवारण के बारे में और अधिक जानकारी है। डॉकर प्रलेखन लंबित राज्य में सेवा के लिए संभावित कारणों का उल्लेख करता है, लेकिन उनमें से कोई भी लागू नहीं होता है (बाधा समस्या, संसाधन जल निकासी)।मुझे कैसे पता चलेगा कि मेरी डॉकर सेवा लंबित स्थिति में क्यों है?

क्या मैं कहीं डॉकर झुंड 'सोचा प्रक्रिया' देख सकता हूं? यह क्या सोच रहा है

संपादित करें: इसे और अधिक स्पष्ट करना चाहिए था कि मैं नया, 1.12-पेश किया गया, स्वार विकल्प का उपयोग कर रहा हूं।

उत्तर

22

मैं कैसे डिबग करने के लिए जब सेवा डोकर झुंड मोड में अपेक्षा के अनुरूप प्रारंभ नहीं होता है की व्याख्या करेगा।

सबसे पहले, docker service ps <service-name> के साथ एक कार्य आईडी प्राप्त करें।

अगला, docker inspect <task-id> के साथ मेटा डेटा जांचना उपयोगी है। विशेष रूप से, कंटेनर प्रारंभ से पहले त्रुटि संदेश स्थिति फ़ील्ड में है, और उसके बाद पुन: पुष्टि करें कि यह इच्छित पैरामीटर के साथ शुरू किया गया था या नहीं।

कार्य कंटेनर आईडी है, यह असामान्य रूप से कंटेनर शुरू करने के बाद से बाहर निकल गया था, इसलिए docker logs <container-id>

साथ कंटेनर के लॉग जाँच मुझे आशा है कि इस मदद से कुछ नहीं होगा।

+2

धन्यवाद! मेरे मामले में लंबित मतलब डॉकर स्वार एक उपयुक्त नोड नहीं मिला (जो मेरी बाधा से मुलाकात की) –

1

docker run swarm में --debug विकल्प है जो आपको और बता सकता है।

लंबित राज्यों को डीबग करने के लिए उपयोग किए जाने वाले विकल्प को देखने के लिए डॉकर स्वार issue 2341 या docker issue 24982 देखें।

उदाहरण के लिए:

(unknown): 192.168.99.106:2375(node2 ip) 
└ ID: 
└ Status: Pending 
└ Containers: 0 
└ Reserved CPUs: 0/0 
└ Reserved Memory: 0 B/0 B 
└ Labels: 
└ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.... 
+3

मैं 'डॉकर स्विम इनिट 'का उपयोग कर रहा हूं, इसलिए मैं' स्वामीमिट 'का उपयोग कर आंतरिक स्वर्ग प्रबंधक चलाता हूं। कमांड लाइन सहायता कोई '--debug' विकल्प नहीं दिखाती है। मुझे लगता है कि '--debug' के साथ डॉकर डिमन खुद को चाल चलाना होगा। मैं कोशिश करने जा रहा हूँ। – raarts

+0

यह भी जोड़ना चाहते हैं कि सेवा को 'docker-compose.yml' फ़ाइल में डालने के बजाय, इसे हाथ से चलाना प्रबुद्ध हो सकता है। – raarts

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