डॉकटर अनधिकृत: प्रमाणीकरण आवश्यक - सफल लॉगिन के साथ पुश पर


99

अपने मेजबान से docker छवि (सफल लॉगिन के बाद) को धक्का देते समय मुझे "अनधिकृत: प्रमाणीकरण आवश्यक" मिल रहा है।

नीचे दिए गए विवरण।

-bash-4.2# docker login --username=asamba --email=anand.sambamoorthy@gmail.com
WARNING: login credentials saved in /root/.docker/config.json
*Login Succeeded*
-bash-4.2#
-bash-4.2# docker push asamba/docker-whale

Do you really want to push to public registry? [y/n]: y
The push refers to a repository [docker.io/asamba/docker-whale] (len: 0)
faa2fa357a0e: Preparing
unauthorized: authentication required
  • डॉकर संस्करण: 1.9.1 (क्लाइंट और सर्वर दोनों)
  • http://hub.docker.com में रेपो भी बनाया गया है (asamba / docker-whale)।

/ Var / log / संदेश 403 दिखाता है, मुझे नहीं पता कि यह डॉकटर है या नहीं। निचे देखो।

Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884872524Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884988574Z" level=error msg="Handler for POST /v1.21/images/asamba/docker-whale/push returned error: Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.885013241Z" level=error msg="HTTP Error" err="Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced" statusCode=403
Apr 16 11:39:05 localhost journal: time="2016-04-16T11:39:05.420188969Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Mounting V4 Filesystem
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Ending clean mount
Apr 16 11:39:07 localhost kernel: XFS (dm-4): Unmounting Filesystem

किसी भी मदद की सराहना की है, कृपया मुझे पता है अगर आप अधिक जानकारी की जरूरत है। मैंने साथ-साथ पुश भी किया। कोई भाग्य नहीं!


1
यह साइट व्यवस्थापक के साथ-साथ अन्य लोगों के लिए भी उसी समस्या के बारे में जानकारी के लिए मददगार होगा यदि आप अपने उत्तर के बगल में स्थित चेकमार्क पर क्लिक करके उसे "उत्तर" के रूप में चिह्नित करेंगे तो आपको अनुमति दी जाती है (यहां तक ​​कि प्रोत्साहित किया जाता है) कि स्टैक ओवरफ्लो पर।
सिंडी मेइस्टर

जवाबों:


87

संपादित करें (13/08/2017)

@ चरण 2 में लॉग इन करने के क्रम में, डॉक वर्जन 17 में @ करैपिरिंक की टिप्पणी के आधार पर,

docker login -u username -p password

मेरा भी यही मुद्दा था। मैं इसे कैसे सुलझाता हूं।

चरण 1: डॉकटर हब में प्रवेश करें

docker login --username=<user username> --email=<user email address>

स्टेप 2: डॉकटर हब में एक रिपॉजिटरी बनाएं । चलो कहते हैं " mysqlserver: sql "।

docker push <user username>/mysqlserver:sql

7
यह सही उत्तर होना चाहिएdocker login
परम के

5
अच्छी तरह से काम। हालांकि, --मेल को हटा दिया गया है
इगोरगानापोलस्की

(docker version 17): docker login -u यूजरनेम -p पासवर्ड
यूसुफ इस्माइल Oktay

अद्यतन के लिए धन्यवाद। मैं आपकी टिप्पणी के आधार पर उत्तर को अपडेट करूंगा।
GPrathap

34

आपके द्वारा पोस्ट किया गया समाधान मेरे लिए काम नहीं कर रहा है ...

यह मेरे लिए काम करता है:

  1. वांछित नाम के साथ रिपॉजिटरी बनाएं।

  2. जब छवि बनती है, तो नाम सहित छवि को नाम दें, उपयोगकर्ता नाम सहित <dockerusername>/desired-name। उदाहरण के लिए, radu/desired-name


# docker ps -a को conainer का नाम मिलता है --nostalgic_morse यहाँ # docker प्रतिबद्ध -m "test" -a "alex" nostalgic_morse alexcpn / grpc # docker alexcpn / grpc
एलेक्स पुन्नन

28

ठीक है! कोई बात नहीं; मुझे इसका हल मिल गया। 403 के साथ संदेह है कि HTTP सही URL पर नहीं जा रहा है।

उस फ़ाइल को बदलें जिसमें लॉगिन क्रेडेंशियल ~/.docker/config.jsonको डिफ़ॉल्ट रूप से जनरेट किया गया है

{
        "auths": {
                "docker.io": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "x.y@gmail.com"
                }
        }
}

से - docker.io -> index.docker.io/v1 से परिवर्तन पर ध्यान दें। वह बदलाव है।

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "x.y@gmail.com"
                }
        }
}

उम्मीद है की वो मदद करदे।

ध्यान दें कि सामान्य फ़ील्ड 'उपयोगकर्ता नाम: पासवर्ड "बेस 64 एनकोडेड होना चाहिए। उदाहरण के लिए:" यूज़रनेम: पासवर्ड "बेस 64 एनकोडेड" dXNlcm5hbWU6cGFzc3dvcmQ = "है

तो आपकी फ़ाइल में यह शामिल होगा:

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="

आपने मुझे कुछ समय बचाया! मेरे लिए भी सही समाधान।
मार्को लेनजो

7
मेरे लिए भी काम किया। यहाँ कमांड लाइन से एक ही बात है:sudo docker login -e me@example.com -u someuser -p somepass https://index.docker.io/v1/
बंजर

2
धन्यवाद @Banjer, -e param हालांकि हटा दिया गया है, और sudo को उन लोगों के लिए उपयोग नहीं किया जाना चाहिए जिन्होंने अपने सिस्टम को ठीक से स्थापित किया है। एक बेहतर समाधान होगा: docker login -u someuser https://index.docker.io/v1/यह पासवर्ड के लिए पूछेगा, इसे कमांड इतिहास में समाप्त होने से रोक देगा।
एर

17

यदि आप हरोकू का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप धक्का देने से पहले "हरोकू कंटेनर: लॉगिन" को नहीं भूले।


7

मैं इसी तरह के एक त्रुटिहीन त्रुटि संदेश के साथ एक समान मुद्दे में चल रहा था, लेकिन यह निकला क्योंकि मैं एक छवि को धक्का देने की कोशिश कर रहा था जिसे मैंने एक डॉक-मशीन प्रबंधित उदाहरण के खिलाफ बनाया था।

जब मैं उदाहरण ही में लॉग इन किया docker loginऔर docker pushसब कुछ ठीक काम किया।


धन्यवाद, डॉकटर लॉगिन स्वचालित रूप से लिंक
फेलिक्स

7

मैं एक ही समस्या थी, लेकिन मैं इसे निर्दिष्ट यूआरएल के साथ धक्का के साथ तय किया। यथा: docker login -u https://index.docker.io/v1/

कंसोल आउटपुट:

The push refers to a repository [docker.io/<username>/richcity]
adc9144127c1: Preparing 
4db5654f7a64: Preparing 
ce71ae73bc60: Preparing 
e8e980243ee4: Preparing 
d773e991f7d2: Preparing 
bae23f4bbe95: Waiting 
5f70bf18a086: Waiting 
3d3e4e34386e: Waiting 
e72d5d9d5d30: Waiting 
8d1d75696199: Waiting 
bdf5b19f60a4: Waiting 
c8bd8922fbb7: Waiting 
unauthorized: authentication required

1010deiMac:dockerspace whoami$ docker login -u <username> https://index.docker.io/v1/
Password: 
Login Succeeded
1010deiMac:dockerspace whoami$ docker push <username>/richcity 
The push refers to a repository [docker.io/<username>/richcity]
adc9144127c1: Pushed 
4db5654f7a64: Pushed 
ce71ae73bc60: Pushed 
e8e980243ee4: Pushed 
d773e991f7d2: Pushed 
bae23f4bbe95: Pushed 
5f70bf18a086: Pushed 
3d3e4e34386e: Pushing [=============>                                     ] 45.07 MB/165.4 MB
e72d5d9d5d30: Pushed 
8d1d75696199: Pushing [>                                                  ] 1.641 MB/118.1 MB
bdf5b19f60a4: Pushing [============>                                      ]   142 MB/568.4 MB
c8bd8922fbb7: Pushing [========================>                          ] 59.44 MB/121.8 MB

5

हालाँकि मानक प्रक्रिया लॉगिन और फिर docker रजिस्ट्री को आगे बढ़ाने के लिए है, इस विशेष समस्या को खत्म करने के लिए ट्रिक उसी लाइन में उपयोगकर्ता नाम और पासवर्ड प्रदान करके लॉगिन करना है।

इसलिए :

docker login -u xxx -p yyy sampledockerregistry.com/myapp 
docker push sampledockerregistry.com/myapp

काम करता है

जहाँ तक

docker login sampledockerregistry.com 
username : xxx
password : yyy
Login Succeeded

docker push sampledockerregistry.com/myapp

विफल रहता है


4

यहां तक ​​कि मैंने लॉगिन किया और सभी कॉन्फ़िगरेशन की जांच की, यह अभी भी काम नहीं करता है !!!

यह पता चला कि जब मैं अपना डॉकटर बनाता हूं, तो मैं रेपो नाम से पहले अपना उपयोगकर्ता नाम रखना भूल जाता हूं

docker build docker-meteor-build 

(सफलतापूर्वक निर्माण)

और फिर जब मैंने अपने भंडार पर धकेल दिया, तो मैंने उपयोग किया

docker push myname/docker-meteor-build 

यह दिखाएगा unauthorized authentication required

तो, समाधान तो निर्माण का नाम है और धक्का बिल्कुल समान होना चाहिए

docker build myname/docker-meteor-build 
docker push myname/docker-meteor-build 

4

समस्या का नया रूप यह है कि हम डॉक हब रिपॉजिटरी को मावेन रिपॉजिटरी की तरह मानते हैं और सोचते हैं कि इसमें कई अलग-अलग फाइलें, फ़ोल्डर्स और अन्य सामग्री हो सकती हैं।

दूसरी ओर एक dock रिपॉजिटरी सिर्फ एक छवि है, इसमें कुछ और नहीं है। यह एक ही छवि के विभिन्न संस्करणों को धारण कर सकता है, लेकिन इसमें सिर्फ एक छवि होती है।

इसलिए, अपने रिपॉजिटरी को डॉकटर हब पर उसी नाम के रूप में रखें जिस छवि को आप इसमें पुश करना चाहते हैं, और उपसर्ग के रूप में अपने डॉकहॉब उपयोगकर्ता नाम का उपयोग करें। उदाहरण के लिए, यदि आपका उपयोगकर्ता नाम myusername है और आपकी छवि का नाम docker -whale है , तो अपने dockerhub रिपॉजिटरी को docker -whale नाम देना सुनिश्चित करें और नीचे दिए गए आदेशों का उपयोग करके अपनी छवि को रिपॉजिटरी में टैग और पुश करने के लिए करें:

docker logout                                   # to make sure you're logged out and not cause any clashes
docker tag <imageId> myusername/docker-whale    # use :1.0.0 for specific version, default is 'latest'
docker login --username=myusername              # use the username/pwd to login to docker hub
docker push myusername/docker-whale             # use :1.0.0 for pushing specific version, default is 'latest'

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

2

यदि आप पहली बार किसी नई निजी छवि को आगे बढ़ा रहे हैं, तो सुनिश्चित करें कि आपकी सदस्यता इस अतिरिक्त छवि का समर्थन करती है।

डॉकर आपको 6 निजी छवियों को नाम देने की अनुमति देता है, भले ही आप केवल 5 के लिए भुगतान करते हों, लेकिन उस 6 वीं छवि को धक्का देने के लिए नहीं। एक सूचनात्मक संदेश की कमी भ्रामक और परेशान करने वाली है।


2

यहाँ मेरे मामले के लिए समाधान (निजी प्रतिनिधि, मुफ्त खाता योजना)

https://success.docker.com/Datacenter/Solve/Getting_%22unauthorized%3A_authentication_required%22_when_trying_to_push_image_to_DTR

पुश करने के लिए इमेज बिल्ड नाम में रिपॉज का समान नाम होना चाहिए।

उदाहरण: docker हब पर repos है: खातानाम / उत्तर नाम छवि का निर्माण नाम "खाता नाम / resposName" -> docker बिल्ड -t खातानाम / resposName

फिर टाइप करें डॉक पुश अकाउंटनाम / रिस्पना नाम: नवीनतम

बस इतना ही।


लिंक अब टूट गया है। कृपया इसे ठीक करे।
एरिक बोलिंगर

1

मेरे लिए जो काम किया गया था वह एक नया भंडार बनाने और छवि का नाम बदलने के लिए था

$ docker tag image_id myname/server:latest


1

सुनिश्चित करें कि आपके पास निजी छवियों के लिए अधिक स्लॉट हैं।

मेरे मामले में मैंने एक उपयोगकर्ता को एक संगठन में परिवर्तित कर दिया है और यह खो दिया है यह एक नि: शुल्क निजी छवि है, इसलिए पिछले पुश ने काम किया, अब काम नहीं किया।


1

मेरी समस्या 5 मिनट के बाद अमान्य प्राधिकरण टोकन थी। छवि के आकार के कारण धक्का 5 मिनट से अधिक समय लगा।

मैंने इसे "प्राधिकरण टोकन अवधि" को बढ़ाकर 10 मिनट कर दिया है।

यहां छवि विवरण दर्ज करें


आपको यह सेटिंग कहां से मिली? मैं इसे नहीं पा सका।
विक Seedoubleyew

2
इस समस्या से बचने के लिए मेरा हैक docker loginअपलोड खत्म होने से कुछ समय पहले एक और टर्मिनल विंडो में चलना था
विक सीडवेल्यूव

@VicSeedoubleyew Admin Area -> Settings -> CI/CD -> Container Registry। url पथ /admin/application_settings/ci_cd:।
मैनुअल स्मिट्ज़बर्गर

जवाब के लिए धन्यवाद। प्रशासन का क्षेत्र क्या है? मैं dockerhub पर कोई भी नहीं देखता
विक Seedoubleyew

यह स्वयं के गिटलैब उदाहरण के लिए है। मुझे यकीन नहीं है कि अगर आप dockerhub पर उसे कॉन्फ़िगर कर सकते हैं।
मैनुअल स्मिट्ज़बर्गर

0

सुनिश्चित करें कि आपका डॉकटर रिपॉजिटरी नाम आपके स्थानीय डोकर रेपो नाम से मेल खाता है। उदाहरण के लिए यदि आप स्थानीय रेपो नाम "कवशगर / नोडजसैप" कहते हैं

फिर आपके पास डॉकटर हब में रेपो नाम "कवशगर" भी होना चाहिए


0

अपनी कॉन्फ़िगरेशन फ़ाइल में ~ / .docker / config.json जोड़ें

{
        "auths": {
             "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "my_email@gmail.com"
                }
        }
}

जहां XXXXX आपके उपयोगकर्ता नाम की base64 एन्कोडिंग है : पासवर्ड (: शामिल है) https://hub.docker.com का

मेरे मामले में मेरे पास एक ही त्रुटि थी। समस्या (विंडोज़ के तहत) दोहरी डॉकरों की प्रक्रिया से उकसाया गया था, इसलिए उन सभी को मार डालो और एक सेवा को पुनरारंभ करें और यह काम करता है।


0

पहले से ही अच्छे उत्तर हैं, लेकिन मैं एक उल्लेख करना चाहता हूं - आपको इसे आगे बढ़ाने से पहले एक भंडार बनाने की आवश्यकता नहीं है।

मेरे लिए समस्या यह थी कि मैंने जिस खाते में लॉग इन किया था, उसका सही उपयोगकर्ता नाम सेट नहीं किया था। लेकिन एक बार जब सही उपयोगकर्ता नाम YOURNAME/YOURIMAGEइसके टैग के माध्यम से छवि (जैसे ) के सामने सेट हो जाता है , तो आप अग्रिम में एक नया भंडार बनाए बिना इसे धक्का दे सकते हैं।

sudo docker tag IMAGE:VERSION USERNAME/IMAGE:VERSION
sudo docker push USERNAME/IMAGE:VERSION

0

यहाँ एक ही समस्या, छवि को आगे बढ़ाने के दौरान:

unauthorized: authentication required

मैंने क्या किया:

docker login --username=yourhubusername --email=youremail@company.com

इसे किसने छापा:

--मेल को हटा दिया गया है (लेकिन लॉगिन अभी भी सफल रहा है)

समाधान: नवीनतम लॉगिन सिंटैक्स का उपयोग करें।

docker login

यह अंतःक्रियात्मक रूप से उपयोगकर्ता नाम और पासवर्ड दोनों के लिए पूछेगा । तब छवि धक्का सिर्फ काम करता है।

नए सिंटैक्स का उपयोग करने के बाद भी, मेरा ~/.docker/config.jsonलॉगिन होने के बाद ऐसा दिखता है:

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "credsStore": "osxkeychain"
}

तो क्रेडेंशियल macOS के किचेन में है।


0

मुझे sudo docker push / sudo docker pull for ecr repository.This के लिए इसी तरह की त्रुटि मिली है। यह इसलिए है क्योंकि aws cli ने अपने यूजर (abc) और docker को रूट यूजर में इंस्टॉल किया है। मैंने sudo docker को अपने यूजर (abc) पर चलाने की कोशिश की है

इसे रूट में स्थापित aws cli द्वारा निर्धारित किया गया है, aws का उपयोग करके कॉन्फ़िगर किया गया aws का उपयोग कर रूट में कॉन्फ़िगर किया गया है और sudo docker पुश को अपने यूजर पर एक्सेप्ट करने के लिए



0

आप इसे संभालने के लिए xxx / .docker / config.json फ़ाइल को कहीं भी रख सकते हैं। फिर नई config.json फ़ाइल बनाने के लिए फिर से लॉगिन करने का प्रयास करें।

#mv xx/.docker/config.json xx/.docker/config_old.json
#docker login https://index.docker.io/v1/
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: YOUR USERNAME
Password: YOUR PASSWORD
WARNING! Your password will be stored unencrypted in /xxx/.docker/config.json.
Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

0

अगर आप दौड़ रहे हैं windows 7 docker Registry

  1. स्टार्ट **Docker Quick Start terminal**रन (यह टर्मिनल कनेक्शन को सक्षम करता है) जब तक आप छवियों को धक्का नहीं देते, तब तक यह टोकन जीवित रहेगा।
  2. लॉग इन करें docker login
  3. सुनिश्चित करें कि आप उपयोगकर्ता नाम के साथ छवि को टैग करते हैं

    docker build -f Dockerfile -t 'username'/imagename

  4. छवि को धक्का

    docker image push username/imagename

नोट : छवि का नाम सभी लोअरकेस


0

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था।

Error response from daemon: Get https://registry-1.docker.io/v2/hadolint/hadolint/manifests/latest: unauthorized: incorrect username or password

मुझे पता चला कि भले ही मैं docker loginकमांड के साथ सफलतापूर्वक लॉगिन करता हूं , लेकिन कोई भी पुल विफल रहा। मैंने सफाई देने की कोशिश की ~/.docker/config.jsonलेकिन कुछ भी सुधार नहीं हुआ।

कॉन्फिग फाइल में देखते हुए मैंने देखा है कि क्रेडेंशियल्स को वहां नहीं बल्कि एक में सेव किया गया था "credsStore": "secretservice"। लिनक्स में यह seahorseया Passwords and Keysउपकरण होने के लिए होता है । मैंने वहां जाँच की और मैंने सभी docker हब लॉगिन को क्लीनअप किया। इसके बाद एक नए डॉकटर लॉगिन ने उम्मीद के मुताबिक काम किया।

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