फिक्स: डोकर डेमॉन से कनेक्ट नहीं हो सकता



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

यदि आप एक लिनक्स टर्मिनल फेंक रहे हैं तो आप बहुत भ्रमित हो सकते हैं, 'आप डॉकटर डेमॉन से कनेक्ट नहीं कर सकते' त्रुटि, क्योंकि डॉकर डेमन पहले से ही चल रहा है जब आप देखते हैं कि संभावना से अधिक है। जब आप यह सुनिश्चित करना चाहते हैं कि यह है, तो आप शायद हैरान हो जाएंगे जब आपको पता चलेगा कि यह त्रुटि सेवा शुरू नहीं होने के कारण भी है। यह ज्यादातर उन उपयोगकर्ताओं पर फेंका जाता है, जिन्होंने खुद को डॉकर समूह में शामिल नहीं किया है।



डॉकर लिनक्स सिस्टम पर एक अलग उपयोगकर्ता समूह जारी करता है, और जिनके पास उपयोगकर्ता खाते हैं, जो इसमें जोड़े नहीं गए हैं वे इससे कनेक्ट नहीं कर पाएंगे। ध्यान रखें कि डॉकर समूह में एक उपयोगकर्ता खाते को जोड़ना कार्यात्मक रूप से रूट समतुल्य है क्योंकि डेमन हमेशा रूट उपयोगकर्ता के रूप में चल रहा है। एकल-उपयोगकर्ता Ubuntu सर्वर सिस्टम पर यह उम्मीद की जा सकती है, लेकिन यह निश्चित रूप से आर्क, फेडोरा या डेबियन पर डॉक चलाने वालों के लिए ध्यान में रखना होगा।



विधि 1: डॉकर सेवा स्थिति की जाँच करना

हालांकि यह लगभग निश्चित रूप से है, आपको यह जांचना होगा कि क्या डॉकर सेवा वर्तमान में चल रही है। एक टर्मिनल विंडो पर, चलाएँ systemctl स्टेटस docker.service एक सामान्य उपयोगकर्ता के रूप में। आपको कुछ जानकारी प्राप्त करनी चाहिए जिसके बारे में पीआईडी ​​नंबर डॉकर्स डेमन को सौंपा गया है। यदि आप नहीं करते हैं, तो आपको सेवा को पुनः आरंभ करना होगा।



क्या आपको इसे फिर से शुरू करना चाहिए, यह करने की कोशिश करें कि जो कुछ भी था वह आपको 'डॉकर डेमन से कनेक्ट नहीं कर सकता' त्रुटि। यदि यह अब काम करता है, तो आपके पास बस सेवा नहीं चल रही है और वास्तव में इसे चलाने के अलावा किसी और चीज के बारे में चिंता करने की आवश्यकता नहीं है। दुर्भाग्य से, यह अधिकांश मामलों में काम नहीं करता है, इसलिए आपको उन स्थितियों में आगे बढ़ना होगा।

विधि 2: उपयोगकर्ताओं को डॉकर समूह में जोड़ना

Daud डॉकटर जानकारी कमांड लाइन से, जो आम तौर पर आपको एक बार फिर 'डॉकटर डेमन से कनेक्ट नहीं कर सकती' त्रुटि देगा।

यदि यह मामला है, तो आपको चलाने की आवश्यकता होगी sudo groupadd docker; sudo usermod -aG docker $ USER अपने आप को उचित समूह में जोड़ने के लिए। क्या आपको यह त्रुटि देनी चाहिए क्योंकि आपके पास usermod नहीं है, तो आप इसे चलाने के लिए कमांड को संशोधित कर सकते हैं sudo groupadd docker; सुडो गज़वड-ए $ यूएसईआर डॉकटर , लेकिन यह आम तौर पर एक मुद्दा नहीं होना चाहिए क्योंकि अधिकांश वाणिज्यिक-ग्रेड लिनक्स वितरण उपकरण के एक ही सेट के साथ काम कर रहे हैं। किसी भी मामले में, भागो newgrp docker इसलिए यदि आप पहले से नहीं हैं तो आप नए डॉकटर समूह में लॉग इन कर सकते हैं।



ध्यान रखें कि यह आपके द्वारा वर्तमान में लॉग-इन किए गए उपयोगकर्ता को हमेशा जोड़ेगा, जो कि अधिकांश लोगों के सिस्टम पर बहुत अधिक समस्या नहीं होगी, जिनके पास एक उपयोगकर्ता और रूट खाते से परे कई खाते नहीं हैं। चूँकि आपके पास समय के लिए प्रशासनिक पहुँच कुंजीबद्ध है, इसलिए दौड़ें sudo chgrp docker / usr / bin docker; सुडो चगरप डोकर / सवर / डॉक / डॉक डॉक सॉकेट और कमांड पर अनुमतियों को ठीक करने के लिए। आमतौर पर, सॉकेट फ़ाइल केवल रूट उपयोगकर्ता के लिए होती है, इसलिए यह सही होगा।

इसे चलाने के बाद, आपको कोई परेशानी नहीं होनी चाहिए क्योंकि यह अब उसी समूह से संबंधित है जिसे आपने पिछली कमांड में बनाया था। आप यह सुनिश्चित करने के लिए परीक्षण करना चाहते हैं कि do sudo के बिना चलता है, हालाँकि, इस प्रकार है डोलर हेलो-वर्ल्ड चलाते हैं यह सुनिश्चित करने के लिए एक नियमित उपयोगकर्ता के रूप में कि आपको कोई अन्य त्रुटि नहीं मिल रही है।

इस बिंदु पर, बहुत कम उपयोगकर्ता अभी भी किसी भी प्रकार का त्रुटि संदेश प्राप्त कर रहे हैं। इस बिंदु पर अधिकांश चीजों को ठीक किया जाना चाहिए, लेकिन अगर आपको अभी भी कोई समस्या है तो आप पूरी तरह से लॉग आउट करना चाहते हैं। एक और टर्मिनल एमुलेटर विंडो खोलने की कोशिश करें, लेकिन अगर यह काम नहीं करता है तो कभी-कभी सिस्टम को पूरी तरह से पुनरारंभ करने में मदद करता है यदि यह संभव है

विधि 3: डॉकटर मेटाडेटा को संशोधित करने के लिए एसीएल का उपयोग करना

यदि आप उस समूह से संबंधित नहीं हैं जो आपको रूट उपयोगकर्ता की तरह बनाता है, तो आप केवल अन्य अनुमतियों के साथ काम करने के लिए सॉकेट फ़ाइल को सेट कर सकते हैं। यदि आप इसे इस तरह से करना पसंद करते हैं, तो आप इस प्रक्रिया को अनदेखा कर सकते हैं। एक सुरक्षा ऑडिट करने वाले लोगों के लिए अलग-अलग एसीएल प्रविष्टियों के लिए फाइल सिस्टम को स्कैन करना, लेकिन यह आपको पूरी तरह से डॉकटर समूह का उपयोग करने से रोकता है।

क्या आप इसे इस तरह से करना चाहते हैं, तो आप दौड़ सकते हैं sudo setfacl -m उपयोगकर्ता: नाम: rw /var/run/docker.sock उपयुक्त लेबल के साथ उपयोगकर्ता और नाम की जगह लेते समय। यह डावर सॉकेट को /var/run/docker.sock पर एक्सेस करने की अनुमति देता है, जिसे डेबियन और उबंटू सर्वर के साथ काम करना चाहिए।

3 मिनट पढ़ा