डॉकर खाते में प्रवेश नहीं कर सकता


109
OS: Ubuntu 18.04 Server
Docker 18.3 CE

मैं अपने विंडोज 10 लैपटॉप से, एक पुष्ट एसएसएच सत्र का उपयोग करके सर्वर पर लॉग इन हूं।

मेरे पास मेरे स्थानीय विंडोज लैपटॉप पर डॉकर नहीं है, इसलिए रिमोट सर्वर पर सभी काम किए जाते हैं।

मैं टर्मिनल सत्र का उपयोग करके, दूरस्थ सर्वर पर सभी डॉकर कमांड निष्पादित कर सकता हूं।

हालाँकि, जब मैं अपनी छवि को डॉकर हब में सहेजने की कोशिश करता हूं, जब मैं लॉगिन करके कोशिश करता हूं:

docker login

मुझे निम्न त्रुटि संदेश मिलता है:

error getting credentials - err: exit status 1, out: `GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files`

मुझे कोई त्रुटि संदेश नहीं मिला, जब मैंने रिमोट सर्वर पर अपनी छवि बनाई।

मुझे दूरस्थ सर्वर पर संबंधित होम निर्देशिका में एक .docker फ़ोल्डर भी दिखाई नहीं देता है। कोई विचार?


मैं docker loginLXD / LXC कंटेनर के भीतर से चलने की कोशिश करते हुए आज कुछ इसी तरह की समस्या में भाग गया । वह विशेष रूप से जिसे मैंने .docker/config.jsonअपने होस्ट से $HOME/.docker/एलएक्सडी / एलएक्ससी कंटेनर के भीतर अपनी निर्देशिका में कॉपी करके हल किया था , जिसे मैंने मैन्युअल रूप से बनाया था। मैं वर्तमान में एक और मुद्दे का पता लगाने की कोशिश कर रहा हूं, लेकिन पूछना चाहता हूं कि क्या आपने अभी तक ऐसा करने की कोशिश की है?
code_dredd

नहीं, मैं विंडोज पर दिया। मुझे कल एक नया लैपटॉप मिल रहा है, जहाँ मैं उबंटू 18 को एक दोहरे बूट के रूप में स्थापित करूँगा।
ईस्टसाइडडेव

मैंने इसके लिए यहाँ एक मुद्दा खोला है github.com/docker/cli/issues/1136 । अगर उन्हें इसके लिए कोई हल मिल जाए, तो मैं इसे यहाँ पोस्ट करूँगा।
thishandp7

जवाबों:


195

2019-04-07 संपादित करें:

जैसा कि यह वर्तमान में चयनित उत्तर है, मुझे लगता है कि लोगों को पहले नीचे दिए गए @ वार्निश समाधान की कोशिश करनी चाहिए क्योंकि यह सबसे आसान लगता है। आपको केवल gnupg2 को स्थापित करने और पैकेज पास करने की आवश्यकता है:

sudo apt install gnupg2 पास

यदि यह काम नहीं करता है, तो आप यहां मेरे मूल समाधान की कोशिश कर सकते हैं:

मेरी भी यही समस्या थी। bak2trak उत्तर ने काम किया, लेकिन इसने स्पष्ट पाठ में प्रमाणिकता को बचाया। यहां समाधान है यदि आप उन्हें पासवर्ड स्टोर में रखना चाहते हैं।

1) https://github.com/docker/docker-credential-helpers/releases से डॉक-साख-पास डाउनलोड करें

2) tar -xvf docker-credential-pass.tar.gz

3) chmod u+x docker-credential-pass

4) mv docker-credential-pass /usr/bin

5) आप (निम्न चरणों में से आधारित हैं सेटअप डोकर-क्रेडेंशियल पास करने की आवश्यकता होगी https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452 )

5.1) gpg और पास स्थापित करें ( apt-get install gpg pass)

5.2) gpg --generate-key, अपनी जानकारी दर्ज करें। आपको कुछ इस तरह से देखना चाहिए:

pub   rsa3072 2018-10-07 [SC] [expires: 2020-10-06]
      1234567890ABCDEF1234567890ABCDEF12345678

123 कॉपी ... लाइन

5.3) pass init 1234567890ABCDEF1234567890ABCDEF12345678(पेस्ट)

5.4) pass insert docker-credential-helpers/docker-pass-initialized-checkऔर अगला पासवर्ड सेट करें "पास इनिशियलाइज्ड है" (बिना उद्धरण के)।

5.5) pass show docker-credential-helpers/docker-pass-initialized-check। आपको देखना चाहिए कि पास को इनिशियलाइज़ किया गया है।

5.6) docker-credential-pass list

6) एक ~ / .docker / config.json बनाएं:

{
"credsStore": "pass"
}

7) docker login को अब काम करना चाहिए

नोट: यदि आपको भविष्य में रन में "पास स्टोर अनधिकृत है" त्रुटि मिलती है, तो नीचे कमांड चलाएं (यह पास स्टोर को मेमोरी में पुनः लोड करेगा):

pass show docker-credential-helpers/docker-pass-initialized-check

यह आपका पासवर्ड पूछेगा और यह पास स्टोर को इनिशियलाइज़ करेगा।

यह इस चर्चा पर आधारित है: https://github.com/moby/moby/issues/25169#issuecomment-431129898


मेरे लिए काम नहीं किया। मुझे संदेश मिलता है जब मैं डॉक लॉगिन करने की कोशिश करता हूं: "त्रुटि क्रेडेंशियल प्राप्त करना - गलत: निकास स्थिति 1, बाहर:` पास की दुकान
अनधिकृत है

मैंने पास को फिर से अनइंस्टॉल करने और .password- स्टोर फ़ोल्डर को हटाने के बाद फिर से शुरू किया। अब बेहतर लगता है। धन्यवाद।
ग्लेशियलस्पून

1
@ जीन-फिलिप्स जोडोइन, धन्यवाद। ऐसा लगता है कि मुझे समय-समय पर कॉल करना पड़ता है अन्यथा लॉगिन कॉल क्रेडेंशियल खोजने में विफल रहता है। मैंने पढ़ा कि यह gpg कैश एक्सपायरिंग और "पास शो" के साथ कुछ करने के लिए हो सकता है। जब सर्वर रिबूट होता है, तो मुझे काम करने से पहले "पास डालें" चरण पर वापस जाना होगा। यह बहुत सुविधाजनक नहीं है, लेकिन यह मुझे आगे बढ़ने की अनुमति दे रहा है।
ग्लेशियलस्पून

1
नीचे अनीश वर्गीज द्वारा उत्तर की जाँच करें, यह सबसे आसान और साफ समाधान लगता है।
ऑरेलियन

1
@JoePhillips: आपके साथ सहमत हुए। उनके समाधान को प्रशस्ति पत्र के साथ एकीकृत किया।
जीन-फिलिप जोडॉन

200

निम्नलिखित पैकेज स्थापित करें ubuntu ने मेरा मुद्दा ठीक कर दिया है

sudo apt install gnupg2 pass

मेरे लिए काम नहीं किया, लेकिन यह भी स्थापित gpg काम किया: "sudo apt स्थापित gnupg2 पास gpg"
Jörg Beyer

6
Ubuntu 18.04 पर भी मेरे लिए काम किया। मैंने केवल जारी किया sudo apt install pass, बाकी इसकी निर्भरता के रूप में आया
21lex

4
Unbuntu 18.04 पर मेरे लिए काम किया।
गिल बेट्स

5
समस्या की जड़ क्या है? और क्यों gnupg2 passसमस्या को ठीक करेगा?
स्काईफॉल

1
Ubuntu 19.04 पर भी मेरे लिए काम किया
अम्माद खालिद

41

मैं ubuntu 18.08 में इसी मुद्दे का सामना किया और यह अंत में मेरे लिए काम किया .. एक अस्थायी समाधान के रूप में।

मैंने इस फ़ोल्डर home/.docker/को बनाया था क्योंकि कुछ समाधानों ने मुझे एक फ़ाइल बनाने config.jsonऔर उसमें डिफ़ॉल्ट क्रेडेंशियल्स लिखने का सुझाव दिया था

{
    "credsStore": "pass"
}
  • मैंने इस फ़ाइल को हटा दिया config.json
  • फिर कुछ और करने के लिए डॉक-क्रेडेंशियल-सीक्रेट्स सेवा का नाम दिया ताकि वह इस फ़ाइल को न उठा सके।

    sudo mv / usr / bin / docker-क्रेडेंशियल-सीक्रेट्स-सर्विस / usr / bin / docker- क्रेडेंशियल-सीक्रेट्स_x

और यह काम किया!


2
@Renrhaf पहले डोकर "पारित" जहां यह खोज के लिए डिफ़ॉल्ट दिखता द्वारा में GNOME कीचेन और OSX-चाबी का गुच्छा ओएस एक्स में। अगर यह नहीं मिला है तो ढूंढता है org.freedesktop.secrets। यह ubuntu 18 (कुछ मुद्दों) के लिए नहीं मिला। इसे (docker- क्रेडेंशियल-सीक्रेट्स) का नाम बदलकर कुछ और करने के लिए फिर यह स्वयं द्वारा कॉन्फ़िग फ़ाइल बनाने के लिए वापस आ जाता है, आप होम / .docker फोल्डर में एक config.json फ़ाइल देख सकते हैं।
bak2trak

मैं बस इस मुद्दे का सामना किया और इस विधि के माध्यम से इसे हल किया - तरह का। मैंने docker-credential-secretserviceजीएच से स्थापित किया, ~/.docker/config.jsonसामग्री के साथ बनाया जैसा कि ऊपर ने लॉग इन करने की कोशिश की। एक त्रुटि मिली। फिर .dockerफ़ोल्डर को हटा दिया , config.jsonऔर /usr/bin/docker-credential-secretserviceनिष्पादन योग्य और फिर docker loginसफलता के साथ फिर से भाग गया
एंडी

1
किसी को भी एक ही समस्या होने पर: config.json को हटाना न भूलें । मैंने लगभग इसे छोड़ दिया, लेकिन मैंने config.json को हटाने के बाद अंतिम क्षण में काम किया।
sr9yar

2
मेरे लिए, मैंने अनइंस्टॉल किया docker-composeऔर फिर अपना sudo mv /usr/bin/docker-credential-secretservice /usr/bin/docker-credential-secretservice_xनाम बदलकर काम किया। क्या किसी को पता है कि docker-credential-secretserviceइसका क्या उपयोग किया जाता है?
user1032613 21

1
इस समाधान ने मेरे लिए काम किया, लेकिन यह क्रेडेंशियल बेस 64 एन्कोडेड को बचाता है। मैंने एक समाधान के नीचे पोस्ट किया है जो पास का उपयोग करता है। stackoverflow.com/questions/50151833/…
जीन-फिलिप जोडोन

4

अगर apt install gnupg2 पास आपके लिए काम नहीं करता है, तो आप golang-docker- क्रेडेंशियल-हेल्पर्स पैकेज भी स्थापित कर सकते हैं


4

यह भी मदद कर सकता है, कम से कम यह Ubuntu 20.04 में किया था:

wget https://github.com/docker/docker-credential-helpers/releases/download/v0.6.3/docker-credential-secretservice-v0.6.3-amd64.tar.gz && tar -xf docker-credential-secretservice-v0.6.3-amd64.tar.gz && chmod +x docker-credential-secretservice && mv docker-credential-secretservice /usr/local/bin/

https://hackernoon.com/getting-rid-of-docker-plain-text-credentials-88309e07640d   https://github.com/docker/docker-credential-helpers-releases


2

मेरे लिए docker pushअसफल रहा

denied: requested access to the resource is denied

... तो मैं चाहता था docker loginलेकिन क्रेडेंशियल दर्ज करने के बाद निम्नलिखित मिला:

Remote error from secret service:
  org.freedesktop.DBus.Error.UnknownMethod:
  No such interface 'org.freedesktop.Secret.Collection' on object at path
  /org/freedesktop/secrets/collection/login

Error saving credentials:
  error storing credentials - err: exit status 1, out:
  No such interface 'org.freedesktop.Secret.Collection' on object at path
  /org/freedesktop/secrets/collection/login

सौभाग्य से, मेरे पास एक और मशीन उपलब्ध थी जिस पर मैं सिस्टम में बिना किसी बदलाव के लॉग इन कर सकता था। मैंने इसकी सामग्री की प्रतिलिपि बनाई ~/.docker/config.json...

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "<some-hash-value>"
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.09.2 (linux)"
        }
}

... दूसरी मशीन के लिए और docker pushकाम किया।


1

मेरे लिए सबसे सरल उपाय था कि config.json फ़ाइल को बनाया जाए। उपयोगकर्ता होम निर्देशिका के अंदर .docker निर्देशिका:

/home/.docker/config.json

फिर मैंने सर्वर से इस फ़ाइल की सामग्री की प्रतिलिपि बनाई, जहां से मैं डॉकटर हब में लॉगिन करने में सक्षम था।

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "SOMEVALUE"
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.06.1-ce (linux)"
        }

}

इसका एक आसान तरीका है, क्योंकि इसके लिए आपको किसी भी पैकेज को स्थापित या अपडेट करने की आवश्यकता नहीं है, जिसे हम उत्पादन सर्वर पर आसानी से नहीं कर सकते।


अफसोस की बात है, यह एकमात्र ऐसा काम है जो मेरे लिए काम कर रहा है ... कम से कम आपके खाते के पीडीएफ़ के बजाय एक पहुंच टोकन का उपयोग करना संभव है।
बजे जॉर्ज अरिस्टी सेप

पथ "~ / home / .docker / config.json" ऐसा गलत लगता है। आपका शायद मतलब था ~ ~ / .docker / config.json "
ब्लेकबैट

इसे बाहर निकालने के लिए धन्यवाद, मार्ग को आगे बढ़ाया।
श्री कश्यप

0

वैसे आप पहले से ही समाधान पढ़ते हैं लेकिन तथ्य यह है कि gnupg2 अब Ubuntu 18+ में डिफ़ॉल्ट रूप से स्थापित नहीं है, यही कारण है कि कुछ समय बाद apt upgrade, चीजें थोड़ी अलग तरह से व्यवहार करती हैं।


0

जवाब के बाद मेरे पास कई मुद्दे थे।

  1. मुख्य पीढ़ी एंट्रॉपी (चरण 5.2) पर अटक गई थी।

सौभाग्य से, फिक्स आसान है और आपको केवल पैकेज को स्थापित करने की आवश्यकता है rng-tools: https://stackoverflow.com/a/32941065

  1. पर pass init <key>(कदम 5.3) त्रुटि gpg: decryption failed: No secret keyदिखाया।

वास्तव में यह मुद्दा गुप्त कुंजी को मूल विशेषाधिकारों तक सीमित रखने के कारण है।

मैंने .gnupg .password-storeअपने उपयोगकर्ता की होमडिर में फ़ोल्डर्स के स्वामित्व को बदल दिया ।

फिर "असुरक्षित स्वामित्व" चेतावनी से बचने के लिए dirmngr को फिर से लोड किया:

gpgconf --kill dirmngr

यदि आप वह सब नहीं करना चाहते हैं जो आप उत्तर के सभी आदेशों को रूट / सुडो के रूप में चला सकते हैं।


0

निम्नलिखित बनाने के लिए यह मेरे लिए हल:

AWS_CONFIG=$AWS_DIR/config
AWS_CREDENTIALS=$AWS_DIR/credentials
mkdir -p $AWS_DIR

0

सरल समाधान: बस "credsStore": "secretservice"~ /। डॉकर / config.json से हटा दें


-3

Ubuntu में निम्नलिखित पैकेज स्थापित करें

sudo apt install gnupg2 pass

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


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