क्या मैं टीएलएस के बिना टीएलएस-सक्षम डेमॉन से जुड़ने की कोशिश कर रहा हूं?


221

मैं डॉकर के बारे में जानने की कोशिश कर रहा हूं , लेकिन मुझे त्रुटि संदेश मिल रहे हैं।

संभवतः इसका सबसे सरल उदाहरण डॉकर I के संस्करण को प्रिंट करने का प्रयास कर रहा है:

$ sudo docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.16/version:
    dial unix /var/run/docker.sock: no such file or directory.
    Are you trying to connect to a TLS-enabled daemon without TLS?

मैं अभी उपयोगकर्ता गाइड के माध्यम से जा रहा हूं और हर कदम का ठीक से पालन कर रहा हूं, इसलिए मुझे आश्चर्य है कि मुझे यह संदेश मिला है ... अब मुझे क्या करना चाहिए?

मैंने अभी देखा कि अगर मैं उपयोग नहीं करता तो मुझे sudoत्रुटि नहीं मिलती:

$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8

बेशक, यह एक समाधान नहीं है क्योंकि मुझे sudoसड़क के नीचे कहीं और उपयोग करने की आवश्यकता हो सकती है ...

मुझे बस एक और पृष्ठ मिला, जिसमें कहा गया था कि " यदि आप OS X का उपयोग कर रहे हैं तो आपको उपयोग नहीं करना चाहिए sudo।" मुझे नहीं पता कि उनका मतलब केवल उस उदाहरण के लिए है, या सामान्य तौर पर है।


38
मूर्खतापूर्ण सवाल लेकिन क्या आपने डॉकटर डेमन शुरू किया है?
उस्मान इस्माइल

मैं उपयोगकर्ता गाइड का पालन कर रहा हूं, इसलिए मैं मानता हूं कि डॉक डेमॉन शुरू किया गया है। मैं कैसे दोहरी जांच कर सकता हूं?
शॉन

5
वास्तव में आपको समाधान मिल गया। Boot2docker के साथ आपको linux के साथ sudo की आवश्यकता नहीं होगी। आपको हमेशा sudo की आवश्यकता होगी। ऐसा इसलिए है क्योंकि boot2docker वास्तव में एक वर्चुअल बॉक्स में उन कमांड्स को चलाता है जो डेमॉन को सही तरीके से एक्सेस करने के लिए सेटअप है।
उस्मान इस्माइल

1
मैं इस मुद्दे से जूझ रहा था और बिना सूदो के मेरे लिए काम चल रहा था
sak

6
लगभग सभी उत्तर ओएस एक्स विशिष्ट हैं (वे उल्लेख करते हैं boot2docker) हालांकि ओएस एक्स को प्रश्न या टैग में स्पष्ट रूप से उल्लेख नहीं किया गया है। अगर किसी को जेनेरिक जवाब में दिलचस्पी है तो कृपया मेरा जवाब देखें।
पायोत्र डोब्रोगोस्ट

जवाबों:


150

मेरे लिए, $(boot2docker shellinit 2> /dev/null)समस्या को हल करना।

यह आपके वर्तमान टर्मिनल सत्र में boot2docker shellinitकमांड (तीन set -x ...लाइन) का आउटपुट चलाता है , जो dockerकमांड को बूट 2 डॉक वर्चुअल मशीन को खोजने के लिए देता है।

$(boot2docker shellinit 2> /dev/null)अपनी ~/.bash_profileफ़ाइल के निचले भाग में जोड़ने से यह सुनिश्चित हो जाएगा कि dockerकमांड कॉन्फ़िगर होने पर, हर बार जब आप अपना टर्मिनल खोलते हैं।


मछली के खोल का उपयोग करने वाले लोगों के लिए boot2docker shellinit ^ /dev/null | source:।


ध्यान दें कि 2> /dev/null(और मछली के समकक्ष ^ /dev/null) वैकल्पिक हैं। जैसे @ पाब्लो-फर्नान्डेज़ ने सुझाव दिया, यह Writing ..लाइनों को छुपाता है ।


मैंने पहले ही ऐसा कर लिया था, लेकिन मैं इसे .bash_profile, अच्छे विचार से जोड़ दूंगा
Shawn

निश्चित रूप से बूट 2docker 1.5 के साथ मदद करता है, लेकिन पुराने एक boot2docker 1.2 ने इसे सही ढंग से नहीं किया
अधिकतम मार्कोव

1
मैंने एक Stderr रिडायरेक्शन जोड़ा, ताकि "राइटिंग ..." स्टेटमेंट न दिखाई दें: $ (boot2docker shellinit 2> / dev / null)
पाब्लो फर्नांडीज

3
मछली खोल का उल्लेख करने के लिए धन्यवाद! मेरे लिए समस्या का समाधान किया।
सिरिलक

1
जैसा कि नीचे साल्वाडोर डाली के उत्तर में बताया गया है, सुनिश्चित करें कि आप boot2docker startशेल इनिट को चलाने से पहले भी चलाते हैं ।
केविन

78

मुझे sudo के साथ और इसके बिना MacOS पर वही त्रुटि मिल रही थी।

मैंने इसे हल किया है:

boot2docker start
$(boot2docker shellinit)

पुनश्च: एलन के लिए धन्यवाद। मुझे पता चला कि उनके आधिकारिक दस्तावेज में इस दृष्टिकोण की सिफारिश की गई है ।

PS2: कभी-कभी boot2docker initदो कमांड चलाने से पहले आवश्यक हो सकता है (धन्यवाद हारून)।


यह काम किया, लेकिन मुझे समझ में नहीं आता क्यों? $ (बूट 2 डॉक शेलरिट) क्या कर रहा है?
एमिल

यह मैक ओएस एक्स में काम करता था लेकिन मेरे पास एमिल के समान सवाल है, अर्थात यह काम क्यों किया?
निसान

यह मेरे लिए मैक OSX 10.10.4 पर डॉकर टूल्स के साथ काम नहीं किया।
b01

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

मेरे लिए एक विंडोज़ मशीन पर भी काम किया।
नौशाद

55

मेरे मामले में (लिनक्स टकसाल 17) मैंने विभिन्न काम किए, और मुझे यकीन नहीं है कि उनमें से कौन सा पूरी तरह से आवश्यक है।

मैंने लापता उबंटू पैकेजों को शामिल किया:

$ sudo apt-get install apparmor lxc cgroup-lite

उपयोगकर्ता को समूह में जोड़ा गया था docker:

$ sudo usermod -aG docker ${USER}

शुरू किया डेमन (खुले तौर पर बस इसकी जरूरत है)

$ sudo docker -d

धन्यवाद \ रोपण


धन्यवाद उस्मान इस्माइल , क्योंकि शायद यह आखिरी बात थी ...

मूर्खतापूर्ण सवाल लेकिन क्या आपने डॉकटर डेमन शुरू किया है? - उस्मान इस्माइल 17 दिसंबर को 15:04 बजे


मेरे लिए काम करने वाले समाधान के लिए @ माइकलजेकोल को धन्यवाद देने के लिए भी धन्यवाद , क्योंकि जब मैंने उस्मान की टिप्पणी पढ़ी तो मैंने डेमॉन की जांच नहीं की।

GitHub टिप्पणी :

sudo apt-get install apparmor lxc cgroup-lite
sudo apt-get  install docker.io
# If you installed docker.io first, you'll have to start it manually
sudo docker -d
sudo docker run -i -t ubuntu /bin/bash

लापता पैकेजों को देखने के लिए fredjean.net पोस्ट के लिए धन्यवाद और डिफ़ॉल्ट उबंटू स्थापना निर्देशों और अन्य तरीकों के बारे में Google के बारे में भूल जाओ

यह पता चला है कि लिनक्स मिंट पर डिफ़ॉल्ट रूप से cgroup-lite और lxc संकुल स्थापित नहीं हैं। दोनों को स्थापित करने के बाद मुझे बेस इमेज में बैश चलाने और फिर अपनी इमेज बनाने और चलाने की अनुमति मिली।


धन्यवाद के बारे में brettof86 की खुलेआम टिप्पणी


2
धन्यवाद! मेरे मामले में (मिंट १ ).१) यह अपीयर था जो गायब था।
एलेक्जेंडर एल

2
अपने आप को डोकर समूह को जोड़ना, मेरे लिए काम किया है sudo adduser $USER docker। वर्तमान शेल पर इसे प्रभावी बनाने के लिए ट्रिक curgroup=$(id -gn) && newgrp docker && newgrp $curgroup, superuser.com/questions/272061/…
Tero Tilus

1
मैं इस तथ्य का अनुमान लगाता हूं कि यह बहुत कम स्कोर है क्योंकि अधिक लोग लिनक्स की तुलना में ओएस एक्स का उपयोग कर रहे हैं? मैं Ubuntu 14.04 का उपयोग कर रहा हूं और यह मेरे लिए काम करता है।
आइकेडवाटर

1
openSUSE और मुझे केवल
ब्लॉकऑल

डॉक-मशीन के बारे में मेरी अज्ञानता को माफ करना, लेकिन मुझे नहीं पता। लेकिन अगर आपको पता चले तो कृपया इसे टिप्पणियों में यहाँ उत्तर दें या उत्तर संपादित करें। : डी
एलमेसा

49

अंडरलाइनिंग समस्या सरल है - /var/run/docker.sockयूनिक्स डोमेन सॉकेट के लिए अनुमति की कमी ।

से Daemon सॉकेट विकल्प अध्याय की डोकर कमांड लाइन डोकर 1.6.0 के लिए संदर्भ:

डिफ़ॉल्ट रूप से, एक यूनिक्स डोमेन सॉकेट (या आईपीसी सॉकेट) बनाया जाता है /var/run/docker.sock, जिसमें रूट अनुमति, या डॉक समूह सदस्यता की आवश्यकता होती है

उपयोगकर्ताओं को अधिकार प्रदान करने के लिए आवश्यक कदम फेडोरा के लिए डॉकर स्थापना निर्देशों में अच्छी तरह से वर्णित हैं :

डॉकर का उपयोग करने के लिए उपयोगकर्ताओं को अधिकार प्रदान करना

Docker कमांड लाइन टूल एक सॉकेट फ़ाइल के माध्यम से docker daemon प्रक्रिया से संपर्क करता है जिसके /var/run/docker.sockस्वामित्व में है root:root। हालाँकि यह doo कमांड के लिए sudo का उपयोग करने के लिए अनुशंसित है, अगर उपयोगकर्ता इसे टालना चाहते हैं, तो एक प्रशासक docker समूह बना सकता है, इसके पास स्वयं है /var/run/docker.sock, और उपयोगकर्ताओं को इस समूह में जोड़ सकता है।

$ sudo groupadd docker
$ sudo chown root:docker /var/run/docker.sock
$ sudo usermod -a -G docker $USERNAME

लॉग आउट करें और प्रभावी होने के लिए उपरोक्त परिवर्तनों के लिए वापस लॉग इन करें। कृपया ध्यान दें कुछ लिनक्स वितरण (उबंटू) के डोकर संकुल पहले से ही जगह है कि /var/run/docker.sockमें dockerअनावश्यक ऊपर दिए गए चरण के पहले दो बनाने समूह।

ओएस एक्स के मामले में और boot2dockerस्थिति अलग है; डॉकर डेमॉन एक वीएम के अंदर चलता है, इसलिए DOCKER_HOSTपर्यावरण वेरिएबल को इस वीएम पर सेट किया जाना चाहिए ताकि डॉकर क्लाइंट को डॉकर डेमॉन मिल सके। यह $(boot2docker shellinit)शेल में चलाकर किया जाता है ।


1
हम्म, मेरी स्थिति समान है, लेकिन सूक्ष्म रूप से अलग है। मैं Ubuntu 14.04 पर चल रहा हूं। डॉकटर को सही ढंग से स्थापित किया गया (केवल "docker" दर्ज करने से कमांड की सूची सामने आती है)। मैंने एक डॉकटर समूह बनाया और अपने उपयोगकर्ता को इसका सदस्य बनाया। यह सिर्फ एक घरेलू प्रणाली है और मैं सिर्फ डॉकटर के साथ खेल रहा हूं। हालांकि "docker" के अलावा कुछ भी त्रुटि सामने आती है। मेरा मानना ​​है कि क्योंकि docker /var/run/docker.sock नहीं बना सकता है। मेरे सिस्टम पर / var / run एक सिमलिंक / to / run है जो रूट: रूट और 755 परमिट है, इसलिए docker वहां नहीं लिख सकता है। यकीन नहीं होता कि इससे मेरा क्या हल होगा।
स्टीव कोहेन

पायोत्र, यह स्पष्टीकरण बहुत उपयोगी है। Canyou विस्तृत क्यों "$ (boot2docker shellinit)" काम करता है, लेकिन सादे "boot2docker कवच" नहीं करता है? मैं समझता हूं कि कोष्ठक एक उपधारा में अमल करते हैं, लेकिन मैं यह पहेली करने में सक्षम नहीं हूं कि डॉक को ठीक से काम करने के लिए आवश्यक क्यों है जब अन्य आदेशों में से किसी को भी इसकी आवश्यकता नहीं होती है ...
एलेक्स एडेलस्टीन

@AlexEdelstein boot2docker shellinitऔर अन्य आदेशों के बीच का अंतर यह है कि यह कमांड अपने आप में कोई बदलाव नहीं करता है, लेकिन यह केवल (प्रिंट) कमांड को बनाता है जिसे आपको स्वयं चलाना होता है। आप boot2docker shellinitपहले और फिर मैन्युअल रूप से कॉपी कर सकते हैं और इसके आउटपुट से प्रत्येक कमांड को चला सकते हैं। boot2docker shellinitसबप्रोसेस ( $()सिंटैक्स के साथ ) में चलाकर सभी कमांड्स को चलाना आसान है क्योंकि इस तरह से आउटपुट की प्रत्येक लाइन एक शेल कमांड के रूप में स्वचालित रूप से चल रही है। Docs.docker.com/installation/mac/#from-your-command-line देखें जहां यह विस्तार से दिखाया गया है।
पायोत्र डोब्रोगोस्ट

@SteveCohen आप जाँच सकते हैं कि docker सेवा के साथ चल रहा है sudo service docker status। मेरे Ubuntu 14.04 पर यह स्थापना के बाद नहीं चल रहा था, जो त्रुटि का कारण बना।
razz0

1
मूल कारण के लिए वास्तविक दस्तावेज को जोड़ने के लिए धन्यवाद, मेरी समस्या हल कर दी
RonaldFindling

23

सुनिश्चित करें कि डॉकर डेमन चल रहा है:

service docker start

उसने मेरे लिए इसे हल कर दिया!


sudo service docker startमेरे लिए
2

systemctl enable docker.serviceऔर systemctl start docker.service system.d linux उपयोगकर्ताओं के लिए (मेरे मामले में आर्क)
PRDeving

sudo service docker restartमेरे लिए
जमे हुए लौ

15
  1. डॉकर खुद को लिनक्स कंटेनर के लिए एक आत्मनिर्भर रनटाइम कहता है। सरल शब्दों में यह सर्वर और क्लाइंट दोनों के रूप में कार्य करता है।
  2. $ docker versionआदेश क्वेरी डोकर निष्पादन करने के लिए और डेमॉन / सेवा चल रहा है के लिए नहीं आंतरिक है।
  3. $ docker images or $ docker ps or $ docker pull centos कमांड जो डॉक डेमॉन / सेवा चलाने के लिए प्रश्न भेजते हैं।
  4. डिफ़ॉल्ट रूप से डॉकर अपने डेमॉन / सेवा के लिए टीएलएस कनेक्शन का समर्थन करता है।
  5. केवल यदि आप जिस उपयोगकर्ता के रूप में लॉग इन हैं, वह उपयोगकर्ता समूह का हिस्सा है dockerया आपने sudoकमांड से पहले उपयोग किया है , उदाहरण के लिए $ sudo docker images, उसे टीएलएस कनेक्टिविटी की आवश्यकता नहीं है।

डॉकर प्रलेखन पृष्ठ पर जाएं डोकर डेमॉन सॉकेट को सुरक्षित रखें

थोड़ा ऊपर की ओर स्क्रॉल करें और warning sectionस्पष्टता के लिए खोजें ।


1
अब तक के लोकप्रिय जवाब केवल ओएस एक्स पर लागू होते हैं जबकि यह बहुत अधिक सामान्य है, कारण बताता है और मुझे इसे जीएनयू / लिनक्स पर हल करने की अनुमति देता है।
सिनिस्टरस्टॉफ

1
@laffuste आपकी कमांड USER ADDITIONAL GROUPS का उपयोग करेगी। "-a" गुम होने के कारण
पावेल बारसिक

3
@PawelBarcik भयानक गलती, धन्यवाद:sudo usermod -a -G docker {username}
laffuste

1
इस प्रश्न का उत्तर कैसे देता है ? त्रुटि का कारण क्या है? इसे कैसे जोड़ेंगे? (मैं ओएस एक्स पर नहीं हूं इसलिए मौजूदा उत्तर लागू नहीं होते हैं)।
पायोत्र डोब्रोगोस्ट 7

13

आपको करने की आवश्यकता होगी:

$boot2docker init
$boot2docker start

निम्नलिखित सेटिंग्स ने समस्या को ठीक किया:

$export DOCKER_HOST=tcp://192.168.59.103:2376
$export DOCKER_CERT_PATH=/Users/{profileName}/.boot2docker/certs/boot2docker-vm
$export DOCKER_TLS_VERIFY=1

1
यह कमांड पर्यावरण चर (मैन्युअल रूप से करने के बजाय) को सेट करने के लिए भी इस्तेमाल किया जा सकता है:eval "$(boot2docker shellinit)"
पॉवर्स

11

यह संभव है कि आपके पास अभी तक फ़ाइल की अनुमति नहीं है। यह मेरे साथ हुआ जब मैंने dockerसमूह का उपयोग करके खुद को जोड़ लिया

sudo gpasswd -a user docker

लेकिन अभी तक लॉगआउट नहीं हुआ।

इसे हल करने के लिए, sg docker "docker <subcommand> ..."आप लॉगआउट से पहले या तो री-लॉगइन कर सकते हैं, या उपयोग कर सकते हैं ।

यदि आप समूह docker में हैं /etc/group, तो आपको पासवर्ड टाइप किए बिना इसे चलाने में सक्षम होना चाहिए।

https://dingyichen.wordpress.com/2015/02/05/docker-dial-unix-varrundocker-sock-no-such-file-or-directory-are-you-trying-to-connect-to-a- TLS-सक्षम-डेमॉन-बिना-TLS /


7

Ubuntu पर स्थापित करने के बाद LXC-डोकर आप करने के लिए अपने उपयोगकर्ता को जोड़ना होगा डोकर उपयोगकर्ता समूह:

sudo usermod -a -G docker myusername

यह सॉकेट फ़ाइल अनुमतियों के कारण है:

srw-rw---- 1 root docker 0 Mar 20 07:43 /var/run/docker.sock

अन्य टिप्पणियों में से किसी एक में सुझाए गए अनुसार "-a" के बिना रनम न करें या यह आपके अतिरिक्त समूह सेटिंग को मिटा देगा और "docker" समूह को छोड़ देगा

यही होगा:

➜  ~  id pawel
uid=1000(pawel) gid=1000(pawel) groups=1000(pawel),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),998(docker)
➜  ~  usermod -G docker pawel
➜  ~  id pawel               
uid=1000(pawel) gid=1000(pawel) groups=1000(pawel),998(docker)

6

TLDR : यह मेरे पायथन मीटअप ग्रुप को इस समस्या से अतीत में मिला जब मैं डॉकटर स्थापित करने पर एक क्लिनिक चला रहा था और अधिकांश उपयोगकर्ता OS X पर थे:

boot2docker init
boot2docker up

exportकमांड आपको आउटपुट देता है, तब चलाएं

docker info

आपको यह बताना चाहिए कि यह काम करता है।


प्रसंग (समस्या के लिए हमें क्या लाया)

मैंने डॉकटर स्थापित करने पर एक क्लिनिक का नेतृत्व किया और अधिकांश उपस्थित लोगों के पास ओएस एक्स था, और हम इस समस्या में भाग गए और मैंने इसे कई मशीनों पर काबू पा लिया। यहाँ हम निम्नलिखित चरणों का पालन कर रहे हैं:

सबसे पहले, हमने होमब्रेव स्थापित किया (हाँ, कुछ उपस्थित लोगों के पास यह नहीं था):

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

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

brew install caskroom/cask/brew-cask
brew cask install virtualbox
brew install docker
brew install boot2docker

समाधान

यही कारण है कि जब हम यहाँ समस्या पूछने वाले में भाग गया। निम्नलिखित ने इसे ठीक कर दिया। मैं समझता हूं कि initयह एक बार का सौदा था, लेकिन आपको upहर बार जब आप डॉक शुरू करते हैं, तो शायद आपको चलना होगा :

boot2docker init
boot2docker up

फिर जब upचलाया गया है, तो यह कई exportकमांड देता है । कॉपी-पेस्ट करें और चलाएं।

अंत में docker infoआपको बताना चाहिए कि यह ठीक से स्थापित है।

डेमो करने के लिए

बाकी कमांड्स को इसका डेमो करना चाहिए। (Ubuntu linux पर मुझे sudo की आवश्यकता थी।)

docker run hello-world
docker run -it ubuntu bash

तब आपको कंटेनर में एक रूट शेल पर होना चाहिए:

apt-get install nano
exit

अपने मूल उपयोगकर्ता बैश पर वापस जाएं:

docker ps -l

"कंटेनर आईडी" के तहत लगभग 12 अंकों के हेक्साडेसिमल (0-9 या एफआर) पहचानकर्ता को देखें 456789abcdef। फिर आप अपना परिवर्तन कर सकते हैं और इसे कुछ वर्णनात्मक नाम दे सकते हैं, जैसे descriptivename:

docker commit 456789abcdef descriptivename`

5

लिनक्स उबंटू / मिंट पर डॉकर चलाने के लिए आवश्यक हर चीज:

sudo apt-get -y install lxc
sudo gpasswd -a ${USER} docker
newgrp docker
sudo service docker restart

वैकल्पिक रूप से, यदि आपको ऊपर काम नहीं करना है, तो आपको दो अतिरिक्त निर्भरताएं स्थापित करने की आवश्यकता हो सकती है:

sudo apt-get -y install apparmor cgroup-lite
sudo service docker restart

1
यदि संभव हो तो मैं खुद को +1 देता / चाहती हूं - मैं एक समाधान ढूंढ रही थी और मुझे अपना समाधान मिल गया, जिसे मैं भूल गई :)
tomrozb

इससे मुझे मदद मिली। मैंने महसूस किया कि स्थापना के बाद docker सेवा नहीं चल रही थी, इसलिए sudo service docker startमेरे Ubuntu 14.04 पर समस्या हल हो गई।
razz0

3

मैं यहाँ समाधान की कोशिश की, और boot2docker काम नहीं किया।

मेरा समाधान: मैक पर boot2docker को अनइंस्टॉल करें, वर्चुअलबॉक्स में एक Centos 7 VM स्थापित करें, और उस VM के अंदर डॉकर के साथ काम करें।


3

मेरे लिए निम्न चरणों ने काम किया:

  1. मैंने देखा कि docker run hello-worldइस प्रश्न के रूप में चल रही त्रुटि के साथ असफलता चल रही है, लेकिन sudo docker run hello-worldकाम करना चल रहा है ।
  2. मैं करने के लिए मेरे वर्तमान उपयोगकर्ता को शामिल किया docker, समूह sudo adduser user docker। फिर आपको अपनी मशीन या उपयोग को पुनः आरंभ करना होगा su - user( groupsयदि dockerसमूह में हो तो कमांड का उपयोग करके जांच करें )।

उसके बाद hello-worldकाम करना शुरू किया।

मेरा जवाब इस बात पर आधारित है कि मैं सुडो के बिना डॉक का उपयोग कैसे कर सकता हूं? जो बताता है कि क्या गलत है।



समूह में स्वयं को जोड़ने के बाद, `newgrp docker; newgrp प्राथमिक-समूह यह एक उप-समूह बनाता है, docker के नए प्राथमिक समूह के साथ, फिर सही प्राथमिक समूह को फिर से स्थापित करता है। (थोड़ा सा हैक)।
ctrl-alt-delor 16

2

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

तब boot2dockerऔर dockerबिना किसी अन्य समायोजन के काम किया।


2

मुझे भी यही समस्या थी। एक सरल service docker restartसमस्या हल हो गई।


2

Docker डेमन एक TCP पोर्ट के बजाय एक यूनिक्स सॉकेट से बंधता है। डिफ़ॉल्ट रूप से कि यूनिक्स सॉकेट उपयोगकर्ता रूट के स्वामित्व में है और अन्य उपयोगकर्ता केवल sudo का उपयोग करके इसे एक्सेस कर सकते हैं। डॉकर डेमन हमेशा रूट उपयोगकर्ता के रूप में चलता है।

sudo groupadd docker
sudo usermod -aG docker $USER

लॉग आउट करें और वापस लॉग इन करें ताकि आपके समूह की सदस्यता का पुनर्मूल्यांकन हो।

docker run hello-world

स्रोत: डॉकर को एक गैर-रूट उपयोगकर्ता के रूप में प्रबंधित करें


1

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


0

सुनिश्चित करें कि वहाँ है

127.0.0.1    localhost

अपने में

`/etc/hosts `

फ़ाइल।


0

मुझे उसी मुद्दे का सामना करना पड़ा जब मैं जेनकिन्स से डॉकर चित्र बना रहा था। बस उपयोगकर्ता को dockerसमूह में जोड़ें और फिर डॉकर सेवाओं को फिर से शुरू करें और मेरे मामले में मुझे जेनकिंस सेवाओं को फिर से शुरू करना होगा।

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

http:///var/run/docker.sock/v1.19/build?cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=59aec062a8dd8b579ee1b61b299e1d9d340a1340: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
FATAL: Failed to build docker image from project Dockerfile
java.lang.RuntimeException: Failed to build docker image from project Dockerfile

Solution:

[root@Jenkins ssh]# groupadd docker
[root@Jenkins ssh]# gpasswd -a jenkins docker
Adding user jenkins to group docker
[root@Jenkins ssh]# /etc/init.d/docker restart
Stopping docker:                                           [  OK  ]
Starting docker:                                           [  OK  ]
[root@Jenkins ssh]# /etc/init.d/jenkins restart
Shutting down Jenkins                                      [  OK  ]
Starting Jenkins                                           [  OK  ]
[root@Jenkins ssh]#

-1

दूसरा संभावित कारण यह है कि आपका BIOS CPU विज़ुअलाइज़ेशन सक्षम नहीं है। जाओ और इसे पहले सक्षम करें!

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