docker error: /var/run/docker.sock: ऐसी कोई फ़ाइल या निर्देशिका नहीं है


86

मैं नया करने वाला हूं। मेरे पास एक शेल स्क्रिप्ट है जो डेटा को इम्पाला में लोड करता है और मैं एक डॉक फाइल चाहता हूं जो एक छवि बनाता है और कंटेनर चलाता है। मैं मैक पर हूँ, boot2docker स्थापित किया है और DOCKER_HOSTenv स्थापित किया है।

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

मैं केवल एक पूर्व निर्मित छवि का उपयोग करने की कोशिश कर रहा हूं:

sudo docker pull busybox

मुझे यह त्रुटि मिली:

sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

क्या मेरे डॉकटर सेटअप में कुछ गड़बड़ है?

जब मैं करता हूँ docker pull busybox, यह छवि खींचता है और डाउनलोड पूरा हो गया है।

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

क्या मैं कुछ भूल रहा हूँ?


मुझे वही समस्या हो रही थी। मैंने अपना लैपटॉप रिबूट किया। तो यह मेरे लिए काम करना शुरू कर दिया। (देखें docs.docker.com/installation/ubuntulinux ) उन्होंने कंप्यूटर को पुनः आरंभ करने का भी उल्लेख किया है।
नेहाग

मैं इंटरनेट से जुड़ा हुआ है जब मेरे लिए काम किया, मुझे पता नहीं क्यों यह हालांकि :( हुआ है
साई राम

जवाबों:


87

आपको किसी भी डॉक कमांड को चलाने की आवश्यकता नहीं है sudoजब आप VM boot2dockerमें पारित हर कमांड boot2dockerको डिफ़ॉल्ट रूप से रूट के रूप में उपयोग कर रहे हैं ।

आपको त्रुटि जब आप के रूप में चला रहे हैं देख रहे हैं sudoक्योंकि sudoनहीं है DOCKER_HOSTenv सेट, केवल आपके उपयोगकर्ता करता है।

आप इसकी पुष्टि कर सकते हैं:

$ env

फिर एक

$ sudo env

और DOCKER_HOSTप्रत्येक आउटपुट में खोज रहे हैं ।

आपकी स्क्रिप्ट चलाने वाली docker फ़ाइल के लिए कुछ इस तरह से आपके लिए काम कर सकती है:

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

तब आप चला सकते हैं:

docker build -t your-image-name:your-tag .

यह आपकी डॉकटर छवि का निर्माण करेगा, जिसे आप निम्न कार्य करके देख सकते हैं:

docker images

फिर, अपने कंटेनर को चलाने के लिए, आप निम्न कार्य कर सकते हैं:

docker run your-image-name:your-tag

यह रन कमांड आपके Dockerfileऔर आपके बिल्ड कमांड के साथ आपके द्वारा बनाई गई छवि से एक कंटेनर को शुरू करेगा और फिर आपके script.shद्वारा निष्पादित करने के बाद यह समाप्त हो जाएगा ।


1
मेरी अज्ञानता के बारे में क्षमा करें, लेकिन मुझे नहीं लगता कि मैं निर्माण करने में सफल रहा हूं। "docker images": 2014/08/19 11:11:45 Get http: ///var/run/docker.sock/v1.13/images/json: डायल यूनिक्स /var/run/docker .sock: नहीं ऐसी फ़ाइल या निर्देशिका। क्या डॉक को होम डायरेक्टरी में रखा जाना चाहिए और क्या इसे किसी भी नाम के साथ रखा जा सकता है? क्या यह "छवि-नाम" के समान है?
user1189851

क्या आप उस कमांड को पेस्ट कर सकते हैं जिसका आप डॉकटर इमेज बनाने के लिए उपयोग कर रहे हैं? ऐसा लगता है कि आप अभी भी अपने OSX मशीन पर sudo का उपयोग कर रहे हैं जब आपको नहीं होना चाहिए।
क्रिस मैककिनल

$ docker बिल्ड -t / उपयोगकर्ता / ig / दस्तावेज / परीक्षण / हेलोडॉकर। 2014/08/19 11:18:09 अमान्य नाम स्थान (), केवल [a-z0-9_] की अनुमति है, आकार 4 से 30 के बीच; और नरकोदक में आपके द्वारा दिए गए डॉकफाइल की सामग्री है। बहुत बहुत धन्यवाद।
user1189851

हाँ, आप फ़ाइल पथ के साथ अपनी डॉक छवि को टैग करने की कोशिश कर रहे हैं - -tजैसे कुछ और कोशिश करें your-image-name:a-tag
क्रिस मैककिनल

क्या आप मुझे कमांड लाइन दे सकते हैं, pls। मैं कुछ गड़बड़ कर रहा हूं। मेरी डॉक फ़ाइल नरकोडर है और रास्ता ऊपर दिया गया है।
user1189851

45

आप जल्दी से अपने पर्यावरण का उपयोग कर सेटअप कर सकते हैं shellinit

अपने कमांड प्रॉम्प्ट पर निष्पादित करें:

$(boot2docker shellinit)  

यह पर्यावरण चर को पॉप्युलेट और निर्यात करेगा और अन्य विशेषताओं को इनिशियलाइज़ करेगा।


26

अपने मैक पर जब मैं टर्मिनल का उपयोग कर बूट 2docker-vm शुरू करता हूं


boot2docker start

मैं निम्नलिखित देखता हूं


To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://:2376

इन पर्यावरण चर को स्थापित करने के बाद मैं समस्या के बिना बिल्ड को चलाने में सक्षम था।

अद्यतन [२०१६-०४-२]] यदि आप हाल ही के संस्करणों का उपयोग कर रहे हैं जो आप कर सकते हैं

eval $(docker-machine env) पर्यावरण स्थापित करेगा

( docker-machine envनिर्यात विवरण मुद्रित करेगा)


2
समय बचाने के लिए आप इन्हें अपने टर्मिनल प्रोफाइल में भी जोड़ सकते हैं। Vm आपको सूचित करेगा कि वे पहले से ही सेट हैं।
जो सुसनिक

25

docker pulldocker serviceनहीं चल रहा है तो विफल हो जाएगा । सुनिश्चित करें कि यह चल रहा है

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

यदि यह नहीं चल रहा है, तो आप इसे शुरू कर सकते हैं

sudo service docker start

Ubuntu 15 और इसके बाद के संस्करण के लिए

sudo systemctl start docker


16

मुझे भी यह त्रुटि मिली। हालाँकि, मैंने बूट 2 डॉक का उपयोग नहीं किया , लेकिन सिर्फ उबंटू पर "सादा" डॉक स्थापित किया (देखें https://docs.docker.com/installation/ubuntulinux/ )।

मुझे त्रुटि मिली ("डायल unix /var/run/docker.sock: ऐसी कोई फ़ाइल या निर्देशिका नहीं है। क्या आप टीएलएस के बिना टीएलएस-सक्षम डेमॉन से जुड़ने की कोशिश कर रहे हैं?") क्योंकि डॉकर डेमन अभी तक नहीं चल रहा था

उबंटू पर, आपको सेवा शुरू करने की आवश्यकता है :

sudo service docker start

Http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64 भी देखें


9

Windows पर boot2docker के लिए, देखने के बाद:

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: 
dial unix /var/run/docker.sock: no such file or directory.  
Are you trying to connect to a TLS-enabled daemon without TLS?

मैंने जो किया वह था:

boot2docker start
boot2docker shellinit

इससे उत्पन्न:

export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376

आखिरकार:

boot2docker ssh

और डॉकटर फिर से काम करता है



5

यदि आप CentOS 7 का उपयोग कर रहे हैं, और आपने डॉक को yum के माध्यम से स्थापित किया है, तो चलाना न भूलें:

$ sudo systemctl start docker
$ sudo systemctl enable docker

यह सर्वर को शुरू करेगा, साथ ही इसे बूट पर स्वचालित रूप से फिर से शुरू करेगा।


4

अपने वातावरण को सेटअप करने के लिए और भविष्य के सत्रों के लिए इसे रखने के लिए:

echo 'export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

फिर: source ~/.bashrc

और आपका पर्यावरण हर सत्र में सेटअप होगा


0

पहला /var/run/docker.sock आपके बूट 2docker वर्चुअल मशीन में समान पथ को संदर्भित करता है। Correcly windows /var/run/docker.sock के लिए लिखें


क्या आप यहां कुछ और स्पष्टीकरण जोड़ सकते हैं? इसके अलावा, मुझे लगता है कि उपयोगकर्ता एक मैक पर है।
2ps

0

आप, शायद ओपी नहीं हैं, लेकिन किसी को एक निर्देशिका कहा जा सकता है /var/run/docker.sock/ पहले से ही कारण आप कितनी बार हैक करते हैं और चीजों को सही करने के लिए स्लैश करते हैं (विशेषकर नॉब्स)। उस निर्देशिका को हटा दें और पुनः प्रयास करें।

इसने मुझे सेंटो 7 पर काम करने के लिए मेरे रास्ते में मदद की।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.