docker ongeautoriseerd: authenticatie vereist – bij push met succesvolle login

Terwijl ik de docker-image push (na succesvol inloggen) van mijn host, krijg ik “ongeautoriseerd: authenticatie vereist”.

Details hieronder.

-bash-4.2# docker login --username=asamba [email protected]
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
  • Docker-versie: 1.9.1 (zowel client als server)
  • http://hub.docker.comheeft de repo ook gemaakt (asamba/docker-whale).

De /var/log/messages toont 403, ik weet niet of deze docker. Zie hieronder.

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

Alle hulp wordt op prijs gesteld, laat het me weten als je meer informatie nodig hebt. Ik deed de push ook met -f. Geen geluk!


Antwoord 1, autoriteit 100%

Je moet inloggen bij Docker.

Stap 1: log in op docker-hub

Gebaseerd op de opmerking van @KaraPirinc, in Docker versie 17 om in te loggen:

docker login -u username --password-stdin

Voer vervolgens uw wachtwoord in wanneer daarom wordt gevraagd.

Stap 2: maak een repository in de docker-hub.

Laten we zeggen “mysqlserver:sql“.

docker push <user username>/mysqlserver:sql

Antwoord 2, autoriteit 38%

Oké! laat maar zitten; Ik heb de oplossing gevonden. met 403 Vermoedelijk dat de HTTP niet naar de juiste URL gaat.

Verander het bestand met de inloggegevens die zijn opgeslagen in de ~/.docker/config.jsonvan de standaard gegenereerd van

{
        "auths": {
                "docker.io": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "[email protected]"
                }
        }
}

naar – Let op de wijziging van docker.io -> index.docker.io/v1. Dat is de verandering.

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "[email protected]"
                }
        }
}

Ik hoop dat dat helpt.

Houd er rekening mee dat het auth-veld ‘gebruikersnaam:wachtwoord’ met base64-codering moet zijn.
bijvoorbeeld: “gebruikersnaam:wachtwoord” gecodeerd met base64 is “dXNlcm5hbWU6cGFzc3dvcmQ=”

dus uw bestand zou het volgende bevatten:

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="

Antwoord 3, autoriteit 33%

De oplossing die je hebt gepost werkt niet voor mij…

Dit is wat voor mij werkt:

  1. Maak de repository met de gewenste naam.

  2. Wanneer u de afbeelding vastlegt, geeft u de afbeelding een naam zoals de repository, inclusief de gebruikersnaam <dockerusername>/desired-name. Bijvoorbeeld radu/desired-name.


Antwoord 4, autoriteit 23%

Als je heroku gebruikt, zorg er dan voor dat je niet bent vergeten “heroku container:login” te gebruiken voordat je gaat pushen.


Antwoord 5, autoriteit 17%

Het probleem waarmee nieuwelingen worden geconfronteerd, is dat we de Docker Hub-repository vaak als een maven-repository beschouwen en denken dat het veel verschillende bestanden, mappen en andere inhoud kan bevatten.

Een docker-repository daarentegen is slechts een enkele afbeelding, het bevat niets anders. Het kan verschillende versies van dezelfde afbeelding bevatten, maar het zal slechts één afbeelding bevatten.

Dus geef uw repository op docker hub dezelfde naam als de afbeelding die u erin wilt pushen, en gebruik uw dockerhub-gebruikersnaam als voorvoegsel. Als uw gebruikersnaam bijvoorbeeld mijngebruikersnaamis en uw afbeeldingsnaam docker-whaleis, zorg er dan voor dat u uw dockerhub-repository een naam geeft als docker-whaleen gebruik de onderstaande commando’s om je afbeelding te taggen en naar de repository te pushen:

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'

Antwoord 6, autoriteit 10%

Ik had hetzelfde probleem, maar ik heb het opgelost met push met de opgegeven URL.
als: docker login -u https://index.docker.io/v1/

console-uitvoer:

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

Antwoord 7, autoriteit 7%

Ik kwam een ​​soortgelijk probleem tegen met een eveneens nutteloze foutmelding, maar het bleek te zijn omdat ik probeerde een afbeelding te pushen die ik had gebouwd tegen een door een docker-machine beheerd exemplaar.

Toen ik me aanmeldde bij de instantie zelf, werkte docker loginen docker pushalles goed.


Antwoord 8, autoriteit 5%

Hoewel het standaardproces is om in te loggen en vervolgens naar het docker-register te pushen, is de truc om dit specifieke probleem te verhelpen, in te loggen door gebruikersnaam en wachtwoord op dezelfde regel in te voeren.

Dus :

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

Werkt

terwijl

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

Mislukt


9, Autoriteit 3%

Hier de oplossing voor mijn zaak (privé-repos, gratis accountplan)

https://success.docker.com/datacenter/solve/ Getting_% 22Inaauthorized% 3A_Authentication_required% 22_When_trying_to_push_image_to_dtr

De naam van de afbeelding op de push moet dezelfde naam hebben van de repos.

Voorbeeld:
Repos op Docker Hub is: accountname / resposname
Afbeelding Build Name “AccountName / ResposName” – & GT; Docker Build -t AccountName / ResposName

Typ vervolgens
Docker Push AccountName / ResposName: Laatste

Dat is alles.


10, Autoriteit 3%

Mijn probleem was na 5 minuten een ongeldig autorisatietoken.
De duw duurde meer dan 5 minuten vanwege de afbeeldingsgrootte.

Ik heb het opgelost door de “autorisatie-tokenduur” tot 10 minuten te vergroten.

 Voer hier de afbeeldingsomschrijving in


11, Autoriteit 2%

Als u voor de eerste keer een nieuwe privéafbeelding duwt, moet u ervoor zorgen dat uw abonnement dit extra beeld ondersteunt.

Docker stelt u in staat om 6 privéafbeeldingen te hebben, zelfs als u slechts 5 betaalt, maar niet om dat 6e afbeelding te duwen. Het ontbreken van een informatieve boodschap is verwarrend en irriterend.


12

Zorg ervoor dat u meer slots hebt voor privéafbeeldingen.

In mijn geval bekeerde ik een gebruiker naar een organisatie en het verloor het is een gratis privébeeld, dus eerdere duwt die werkte, niet langer gewerkt.


Antwoord 13

in uw configuratiebestand ~/.docker/config.json toevoegen

{
        "auths": {
             "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "[email protected]"
                }
        }
}

waarbij XXXXX base64-codering is van uw gebruikersnaam:wachtwoord(de : is inbegrepen) van https ://hub.docker.com

in mijn geval had ik dezelfde fout met een pull. het probleem (onder Windows) werd veroorzaakt door een dubbel docker-runproces, dus dood ze allemaal en start één service opnieuw en het werkt.


Antwoord 14

Er zijn al goede antwoorden geweest, maar ik wil er graag één noemen – U hoeft NIET van tevoren een repository aan te maken voordat u erop drukt.

Het probleem voor mij was dat ik niet de juiste gebruikersnaam had ingesteld van het account waarop ik me had aangemeld. Maar zodra de juiste gebruikersnaam is ingesteld voor de afbeelding (bijv. YOURNAME/YOURIMAGE) via de tag, kunt u deze pushen zonder vooraf een nieuwe repository te maken.

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

Antwoord 15

Ik heb een soortgelijke fout ontvangen voor sudo docker push /sudo docker pull op ecr-repository. Dit komt omdat aws cli is geïnstalleerd in mijn gebruiker (abc) en docker is geïnstalleerd in rootgebruiker. Ik heb geprobeerd sudo docker push op mijn gebruiker uit te voeren (abc)

Dit is opgelost door aws cli in root te installeren, aws te configureren met behulp van aws configure in root en sudo docker push to ecr op root-gebruiker uit te voeren


Antwoord 16

Probeer eerst docker logouten log vervolgens opnieuw in met docker login


Antwoord 17

Als u windows 7 docker Registry

. gebruikt

  1. Start **Docker Quick Start terminal**run (deze terminal maakt verbinding mogelijk) Totdat je afbeeldingen hebt gepusht, houdt dat de token in leven.
  2. Inloggen
    docker login
  3. Zorg ervoor dat je de afbeelding tagt met gebruikersnaam

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

  4. push afbeelding

    docker image push username/imagename

Opmerking: afbeeldingsnaam geheel in kleine letters


Antwoord 18

Ik heb alle methoden geprobeerd die ik online kan vinden en faalde. Dan lees ik dit bericht en krijg wat ideeën van @Alex antwoord. Dan zoek ik over “”credsStore”: “osxkeychain”” die wordt gebruikt in mijn config.json. Ik volg deze link https://docs.docker.com/engine/reference/ commandline/login/om uit te loggen en vervolgens opnieuw in te loggen. Eindelijk kan ik mijn afbeelding met succes pushen.


Antwoord 19

Ik had hetzelfde probleem en ik kan het oplossen.
verander het bestand ~/.docker/config.jsonzoals hieronder

{
    "auths": {
        "XxX": {
            "auth": "XxX"
        }
    }
}

en vergeet niet de docker-service opnieuw te starten.

service docker restart 

genieten


Antwoord 20

ik had hetzelfde probleem met Heroku en Docker, de oplossing was

docker login
docker build . -t <project_name> 
heroku container:login
heroku container:push web -a <project_name>

Antwoord 21

Ik had hetzelfde probleem, maar ik heb het opgelost met push met een opgegeven URL:

docker login -u https://index.docker.io/v1/

Ik ben gewoon benieuwd wat de oorzaak van dit probleem kan zijn?


Antwoord 22

Zorg ervoor dat de naam van uw docker-repositry overeenkomt met de naam van uw lokale docker-repository.
laten we bijvoorbeeld zeggen of je lokale repo de naam “kavashgar/nodjsapp” heeft

dan zou je ook een repo met de naam “kavashgar” in de docker-hub moeten hebben

Other episodes