Docker-Compose डॉकर डेमन से कनेक्ट नहीं हो सकता


114

मुझे एक त्रुटि संदेश मिल रहा है जिसमें कहा गया है कि मैं डॉकटर डेमन से नहीं जुड़ सकता। मैंने अन्य लोगों के उत्तरों पर ध्यान दिया है जिनके पास समान मुद्दे हैं, लेकिन इसने मदद नहीं की है। मैं Ubuntu 15.10 का संस्करण चला रहा हूं। मैं अपने पास मौजूद सभी जानकारी प्रदान करने का प्रयास करूंगा।

root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

डॉकर संस्करण

root@# sudo docker     version
Client:
Version:      1.9.1
API version:  1.21
Go version:   go1.4.2
Git commit:   a34a1d5
Built:        Fri Nov 20 13:20:08 UTC 2015
OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

डॉकर-कम्पोज संस्करण

root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3

यह तब होता है जब मैं सेवा को रोकने या शुरू करने की कोशिश करता हूं ...

root@# sudo service docker stop
stop: Unknown instance: 
root@# sudo service   docker start
docker start/running, process 5375

अगर मैं चला ps aux | grep docker

root@# ps aux | grep docker
root      4233  0.0  0.0  13692  2204 pts/15   S+   10:27   0:00 grep --color=auto docker

किसी भी तरह की सहायता का स्वागत किया जाएगा। मुझे पता है अगर आप अब और जानकारी की आवश्यकता हो सकती है।


1
कृपया अपने पदों के साथ बर्बरता न करें। आपके द्वारा एक प्रश्न पोस्ट करने के बाद, आपने स्टैक ओवरफ्लो समुदाय को बड़े पैमाने पर (CC-by-SA लाइसेंस के तहत) लाइसेंस दिया है। यदि आप अपने खाते से इस पोस्ट को अलग करना चाहते हैं, तो देखें कि डिस्सोसिएशन अनुरोध के लिए उचित मार्ग क्या है?
बग्स

जवाबों:


268

डिबगिंग के 15 मिनट के बाद, मेरे पास एक ही त्रुटि थी। सुडो उपसर्ग से छुटकारा पाने के लिए यह सब कुछ बदल जाता है sudo:) एक चेक आउट करें [एक डॉकर समूह बनाएं] https://docs.docker.com/engine/installation/linux/ubuntulinux/ यहाँ देखें


35
उन्हें एक बेहतर त्रुटि की आवश्यकता है = / इस प्रश्न पर 13,000 विचार हैं
जोनाथन

4
यार, आपने लगभग ३० घंटे केवल उन लोगों के लिए बचाए जिन्होंने मतदान किया और शायद यह केवल १% समय है जो आपने वास्तव में बचाया है
vak

5
वास्तविक सुधार docker समूह बना रहा है, जबकि sudoमेरी राय में सिर्फ एक वर्कअराउंड / हैक है। जैसा कि भाग बनाने वाले समूह को यहां नहीं समझाया गया है, केवल एक लिंक दिया गया है, और उस लिंक की सामग्री बदल गई है, मैं इसे केवल लिंक-उत्तर मानता हूं, और यह अब अनिवार्य रूप से बेकार है (वास्तविक निर्धारण भाग के लिए)। क्या आप शायद उस समूह को जोड़ने का विवरण जोड़ सकते हैं?
होइजुई

2
मुझे लगता sudoहै कि एक बुरा विचार भी है। डॉकर को गैर-रूट उपयोगकर्ता के रूप में प्रबंधित करने के लिए डॉकर डॉक्स देखें: docs.docker.com/engine/installation/linux/linux-postinstall/…
jwhitlock

6
मूल रूप से, आपको बस इतना करना है sudo usermod -aG docker $USER, और यह बाद में काम करेगा।
user2340939

65

मुझे यह समस्या थी और मैं चीजों का उपयोग नहीं करना चाहता था sudo । जांच करते समय, मैंने कुछ जानकारी प्राप्त करने की कोशिश की:

docker info

आश्चर्यजनक रूप से, मेरे पास निम्न त्रुटि थी:

डॉक्स डेमन सॉकेट को यूनिक्स से कनेक्ट करने की कोशिश करते समय अनुमति मिल गई: ///var/run/docker.sock: Get http: ///var/run/docker.sock/v1.38//fo : unix / var डायल करें /run/docker.sock: कनेक्ट: अनुमति अस्वीकृत

किसी कारण से मेरे पास पर्याप्त विशेषाधिकार नहीं थे, निम्नलिखित कमांड ने मेरी समस्या हल कर दी:

sudo chown $USER /var/run/docker.sock

Et voilà!


फिर से do पुनः आरंभ करने के बारे में कैसे? हमें यह चांस फिर से करना होगा?
लाइट.जी

नहीं, जब आप do पुनः आरंभ करते हैं तो यह काम करना चाहिए। लेकिन मुझे यकीन नहीं है कि अगर आप अपनी मशीन को पुनः आरंभ करते हैं तो क्या होगा।
मडजौई

डिफ़ॉल्ट रूप से, डॉकर डिफ़ॉल्ट रूप में docker.sockएक गैर-रूट समूह के साथ रखेगा docker। लेकिन हम -Gडॉकर डेमन की दीक्षा के दौरान झंडे को बदल सकते थे । मेरे मामले में, मैं एक समूह जोड़ता हूं $USERNAME, इसका अर्थ है कि docker समूह जोड़ें, फिर मेरी मशीन को रिबूट करें (ubuntu 16.04, PC)। यह अच्छा काम करता है। और यह डॉकर के डॉक्स में अनुशंसित है।
लाइट.जी।

3
मेरे लिए भी काम करता है :)
कामिल जे।

27

ऐसा लगता है कि आपका मुद्दा एक पुराने डॉकर बग द्वारा बनाया गया था, जहां डॉकटर के दुर्घटनाग्रस्त होने के बाद सॉकेट फ़ाइल को फिर से बनाया नहीं गया था। यदि यह समस्या है, तो सॉकेट फ़ाइल का नाम बदलकर इसे फिर से बनाया जाना चाहिए:

$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start

चूंकि यह बग ठीक हो गया है, इसलिए त्रुटि प्राप्त करने वाले अधिकांश लोग Couldn't connect to Docker daemonसंभवतः इसे प्राप्त कर रहे हैं क्योंकि वे dockerसमूह में नहीं हैं और उस फ़ाइल को पढ़ने की अनुमति नहीं है। के साथ चल रहा है sudo docker ...कि ठीक कर देगा, लेकिन एक महान समाधान नहीं है।

डॉकर को एक गैर-रूट उपयोगकर्ता (बिना sudo) के रूप में चलाया जा सकता है जिसके पास उचित समूह अनुमतियाँ हैं। लिनक्स के बाद स्थापित किए गए दस्तावेज़ों का विवरण होता है। लघु संस्करण:

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups  # docker should be in the list of groups for your user
$ docker run hello-world  # Works without sudo

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


यह प्रश्न लिनक्स इंस्टॉल के लिए विशिष्ट है, और इसे ठीक करने के लिए लिनक्स होस्ट सिस्टम पर परिवर्तन शामिल हैं। यदि आप समान विवरण के साथ लेकिन विंडोज के लिए एक समान प्रश्न पोस्ट करते हैं तो आपको बेहतर जानकारी मिलेगी। अपने आप को हल करने के लिए, मैं के एक करीबी पढ़ने की सलाह देते हैं के लिए Windows दस्तावेज़ डोकर
jwhitlock

10

मेरी भी यही समस्या थी। नोट्स लेने और कुछ डीबगिंग परिणामों का विश्लेषण करने के बाद, आखिरकार, मैंने हल किया कि एक ही त्रुटि क्या हो सकती है। पहले सेवा शुरू करें,

service docker start

अपने उपयोगकर्ता को docker समूह में शामिल करना न भूलें।


जब मैं इस त्रुटि का सामना कर रहा था तो मैं रूट के रूप में चल रहा था। sudoयह दूसरों के लिए तय की तरह लग रहा था -_- खुशी है कि यह वास्तव में यह है, कि मैं क्या करना भूल गया था खोजने के लिए। बहुत आसन!
विल

8

आपको अपने उपयोगकर्ता को "docker" समूह में कुछ इस तरह से जोड़ना चाहिए:

sudo usermod -aG docker $ {USER}


5

मुझे यह त्रुटि तब हुई जब Dockerfileनिर्देशिका में ऐसी फाइलें थीं जो वर्तमान उपयोगकर्ता द्वारा सुलभ नहीं थीं। dockerइस प्रकार डेमॉन के लिए पूरा संदर्भ अपलोड नहीं किया जा सका और " http + docker: // localunixsocket " संदेश में डॉकर डेमन से जुड़ नहीं सका


2
धन्यवाद! इससे मेरे लिए हल हो गया। जांच करना आसान है, क्योंकि सभी डॉक कमांड ने काम किया है, लेकिन डॉकटर-कंपोज नहीं किया है। डॉकटर-कंपोज ने एक और डायरेक्टरी में काम किया। बहुत भ्रामक त्रुटि संदेश, BTW।
Csongor Fagyal

1
यह वास्तव में उच्च होना चाहिए
Arlen एंडरसन

1
धन्यवाद! मेरे लिए काम किया। उपयोग करने docker build .से किसी भी अनुमति की समस्या उत्पन्न होगी।
हर

केवल एक चीज जो काम की है - डॉकर त्रुटि संदेश इतने बुरे क्यों हैं? धन्यवाद!
कोडरएम

4

इसे हल करने का एक तरीका यह होगा कि पहले अपने उपयोगकर्ता को dockerनिम्न में से समूह में जोड़ें

sudo usermod -aG docker $USER

महत्वपूर्ण: प्रभावी होने के लिए अपने सिस्टम (केवल आपके टर्मिनल से बाहर) और इसके लिए वापस लॉग इन करना न भूलें!


sudo usermod -aG docker $ {USER} हमें परिवर्तनों को लागू करने के लिए लॉगआउट और लॉगिन भी करना चाहिए: su - $ {USER}
user3785966

3

"Ps aux | grep docker" के आउटपुट से, ऐसा लगता है कि docker डेमन नहीं चल रहा है। नीचे दिए गए तरीकों का उपयोग करके देखें कि क्या गलत है और क्यों docker शुरू नहीं हो रहा है

  1. कर्ता लॉग की जाँच करें

$ सूडो पूंछ -f /var/log/upstart/docker.log

  1. डीबग मोड में प्रारंभ करने का प्रयास करें

$ सूदो docker -d -D


2

मेरे मामले में आपकी docker सेवा बंद हो सकती है

कर्ता सेवा शुरू करने की आज्ञा:

$ sudo systemctl start docker

यह शुरू होने पर सत्यापित करने के लिए कमांड:

$ sudo docker run hello-world


2

एक और कारण है कि यह त्रुटि दिखाई दे सकती है: मेरे लिए यह एक विकृत छवि-पथ परिभाषा थी docker-compose.yml:

  service:
    image: ${CONTAINER_REGISTRY_BASE}/my-service
   ...

पहले ठीक लग रहा है, लेकिन मैं CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/env पर सेट किया था । स्पष्ट रूप से //छवि पथ में यह त्रुटि हुई।

docker-compose: v.1.21.2
docker: 18.03.1-ce

2

बस के साथ प्रयास करें sudo। ऐसा लगता है जैसे अनुमति मुद्दा!

sudo docker-compose -f docker-compose-deps.yml up -d

यह मेरे लिए काम किया।


1

मैंने Ubuntu 16.04 का उपयोग किया और मुझे यह समस्या तब भी आई जब मैंने docker-compose का उपयोग किया। मैंने इस कमांड को चलाकर इसे ठीक किया।

$ sudo systemctl start docker
$ sudo docker-compose build

1

क्या थोड़ी सी संभावना है कि आपने डिफ़ॉल्ट मशीन को हटा दिया है? लेकिन, पहले जांचें कि क्या सभी फाइलें हैं (OSX, अन्य प्रणालियों पर समान)

brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
brew link docker docker-compose docker-machine xhyve docker-machine-driver-xhyve

sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve

इसके अलावा, डॉकर ऐप इंस्टॉल करें, क्योंकि कंटेनरों को बनाए रखना बहुत आसान है:

brew cask reinstall docker

ans खोजक से Docker ऐप शुरू करें (सेवा पूरी तरह शुरू होने तक प्रतीक्षा करें)

फिर, के साथ वृत्ति की जाँच करें:

docker-machine ls

यदि कोई मशीनें सूची में मौजूद नहीं हैं, तो एक बनाएं और इसे शुरू करें:

docker-machine create default
docker-machine start default

इसके बाद, बिल्ड, कंपोज़ और अन्य सभी कमांड को ठीक से काम करना चाहिए।


1

मेरे मामले में, क्योंकि ubuntu की अनुमति है,

  1. सामग्री सूचीबद्ध करें

द्वारा अनुमति की जाँच करें

docker info 

यदि वे समस्या अनुमति को प्रिंट करते हैं, यहां छवि विवरण दर्ज करें तो उपयोग करें

sudo chmod -R 777 /var/run/docker.sock

0

मेरे लिए इस लेख के docker-composeउपयोग का एक नया संस्करण (1.24) स्थापित करना था ।

पिछले संस्करण (1.17) को ubuntuडिफ़ॉल्ट रिपॉजिटरी से स्थापित किया गया था , लेकिन एक नया संस्करण स्थापित करने के बाद मैं कंटेनर लॉन्च करने में कामयाब रहा। आशा है कि यह किसी की मदद करता है।



-1

मेरे मामले में एक ही त्रुटि है जब मैं कोशिश करता docker-compose build हूं और मेरा समाधान सिर्फ जोड़ना थाsudo

sudo docker-compose build

-2

मुझे यह मिला और यह मेरे मुद्दे को ठीक करने के लिए लगा।

गिटहब फिक्स डोकर डेमॉन क्रैश

मैंने लिंक में देखे अनुसार अपने docker-compose-deps.yml फ़ाइल की सामग्री को बदल दिया है। फिर मैं भागा docker-compose -f docker-compose-deps.yml up -d। फिर मैंने इसे वापस बदल दिया और इसने किसी कारण से काम किया। मुझे दिए गए लिंक में चरणों को जारी रखने की आवश्यकता नहीं थी, लेकिन पहले दो चरणों ने मेरे लिए समस्या को निर्धारित किया।


2
ubuntu 16.04: सिर्फ
सुडो

यह उत्तर के रूप में पर्याप्त नहीं है। यदि आप अपने स्वयं के उत्तर को स्वीकार करना चाहते हैं, तो आपको अपने मुद्दे का मूल कारण बताना होगा। अन्यथा, यह दूसरों के लिए एक वास्तविक भ्रामक होगा। BTW, यहाँ अन्य जवाब हैं, क्या उन्होंने मदद की? चूंकि मैंने आपके द्वारा कोई टिप्पणी नहीं देखी।
लाइट.जी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.