web-dev-qa-db-fra.com

docker non autorisé: authentification requise - lors du Push avec une connexion réussie

Tout en poussant l'image du menu fixe (après la connexion réussie) de mon hôte, je suis "non autorisé: authentification requise". 

Détails ci-dessous.

-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
  • Version de Docker: 1.9.1 (client et serveur)
  • http://hub.docker.com a également créé le référentiel (asamba/docker-whale). 

Le/var/log/messages montre 403, je ne sais pas si ce docker. Voir ci-dessous.

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

Toute aide est appréciée, s'il vous plaît laissez-moi savoir si vous avez besoin d'informations complémentaires. J'ai aussi fait la Push avec -f. Pas de chance!

69
Anand

D'ACCORD! ça ne fait rien; J'ai trouvé la solution. with 403 Suspecté que le HTTP ne va pas à la bonne URL. 

Modifiez le fichier contenant les identifiants de connexion, le ~/.docker/config.json étant celui par défaut généré de 

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

to - Notez le changement de docker.io -> index.docker.io/v1. C'est le changement.

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

J'espère que cela pourra aider. 

Notez que le champ auth doit être 'nom d'utilisateur: mot de passe "codé en base64 . Par exemple:" nom d'utilisateur: mot de passe "codé en base64 est" dXNlcm5hbWU6cGFzc3dvcmQ = "

de sorte que votre fichier contiendrait: 

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="
25
Anand

J'ai également eu le même problème. C'est comment je le résous. 

Étape 1: connectez-vous à Docker Hub

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

Étape 2: créez un référentiel dans le docker hub . disons "mysqlserver: sql". 

docker Push <user username>/mysqlserver:sql

Edit (13/08/2017)

Sur la base du commentaire de @ KaraPirinc, dans la version 17 du menu fixe afin de vous connecter (étape 1), 

docker login -u username -p password
73
GPrathap

La solution que vous avez publiée ne fonctionne pas pour moi ... 

C'est ce qui fonctionne pour moi:

  1. Créez le référentiel avec le nom souhaité.

  2. Lorsque vous validez l'image, nommez-la comme le référentiel, y compris le nom d'utilisateur <dockerusername>/desired-name. Par exemple, radu/desired-name.

33
Radu Gabriel

Je rencontrais un problème similaire avec un message d'erreur tout aussi inutile, mais il s'est avéré que c'était parce que j'essayais de transmettre une image que j'avais construite à une instance gérée par docker-machine. 

Lorsque j'ai ouvert une session dans l'instance elle-même, docker login et docker Push fonctionnaient correctement.

7
atomic77

Bien que le processus standard consiste à se connecter, puis à Push to docker, l'astuce pour résoudre ce problème particulier consiste à se connecter en fournissant le nom d'utilisateur et le mot de passe sur la même ligne.

Alors :

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

Travaux

tandis que

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

docker Push sampledockerregistry.com/myapp

Échoue

5
Sukhmeet Sethi

Même si je me suis connecté et que j'ai vérifié toute la configuration, cela ne fonctionne toujours pas !!!

Il s'est avéré que lorsque je construis mon menu fixe, j'oublie de mettre mon nom d'utilisateur avant le nom du référentiel 

docker build docker-meteor-build 

(construire avec succès) 

Et puis quand j'ai poussé dans mon référentiel, j'ai utilisé 

docker Push myname/docker-meteor-build 

Il affichera le unauthorized authentication required

Donc, la solution est alors le nom de la construction et le Push devrait être exactement le même 

docker build myname/docker-meteor-build 
docker Push myname/docker-meteor-build 
4
Thai Tran

si vous utilisez heroku, assurez-vous de ne pas oublier de "conteneur heroku: connectez-vous" avant de pousser.

3
bjoern

Si vous insérez une nouvelle image privée pour la première fois, assurez-vous que votre abonnement prend en charge cette image supplémentaire. 

Docker vous permet de nommer 6 images privées, même si vous n'en payez que 5, mais pas pour transmettre la 6ème image. L'absence de message informatif est source de confusion et d'irritation.

2
user1114056

Le problème que rencontrent les débutants est que nous avons tendance à traiter le référentiel docker hub comme un référentiel maven et pensons qu'il peut contenir de nombreux fichiers, dossiers et autres contenus différents. 

Un dépôt de docker, par contre, n’est qu’une image, il ne contient rien d’autre. Il peut contenir différentes versions d'une même image, mais il ne contient qu'une seule image.

Nommez donc votre référentiel sur le docker hub avec le même nom que l’image que vous souhaitez y insérer et utilisez votre nom d’utilisateur dockerhub comme préfixe. Par exemple, si votre nom d'utilisateur est myusername et votre nom d'image est docker-whale , veillez à nommer votre référentiel dockerhub comme docker-whale et utilisez les commandes ci-dessous pour marquer et pousser votre image dans le référentiel:

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'
2
Neeraj B.

Assurez-vous que vous avez plus de fentes pour les images privées.

Dans mon cas, j'ai converti un utilisateur en une organisation et cette dernière a perdu une seule image privée et privée.

1
Alex Soto

Voici la solution à mon cas (pension privée, plan de compte gratuit)

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

Le nom de construction de l'image en Push doit porter le même nom que le dépôt.

Exemple: Repos sur le docker hub est: nomduCompte/resposName Nom de la construction de l'image "nomCompte/nom du respos" -> docker build -t nom du compte/resposName

puis tapez docker Push accountName/resposName: latest

C'est tout.

1
netz75

Ce qui a fonctionné pour moi a été de créer un nouveau référentiel et de renommer l’image avec 

$ docker tag image_id myname/server:latest

1
Irene Giakoumi

J'ai reçu une erreur similaire pour le docker Sudo Push/Sudo docker tiré sur le référentiel ecr. C'est parce que aws cli est installé dans mon utilisateur (abc) et que le docker est installé dans l'utilisateur root.

Ceci a été corrigé par aws cli installé dans la racine, configuré par aws à l'aide de aws configure dans la racine et exécutez Sudo docker. Push to ecr sur l'utilisateur root.

0
sathish g

Il y a déjà eu de bonnes réponses mais je voudrais en mentionner une - Vous n'avez PAS besoin de créer un référentiel à l'avance avant de le pousser.

Le problème pour moi était que je n'avais pas défini le nom d'utilisateur correct du compte auquel je me suis connecté. Mais une fois que le nom d'utilisateur correct est défini avant l'image (par exemple, YOURNAME/YOURIMAGE) via sa balise, vous pouvez la pousser sans créer à l'avance un nouveau référentiel. 

Sudo docker tag IMAGE:VERSION USERNAME/IMAGE:VERSION
Sudo docker Push USERNAME/IMAGE:VERSION
0
Blaszard

Même problème ici, lors du push image:

unauthorized: authentication required

Ce que j'ai fait:

docker login --username=yourhubusername [email protected]

Ce qui l'a imprimé: 

--email est obsolète (mais la connexion a toujours réussi)

Solution: utilisez la dernière syntaxe de connexion.

docker login

Il demandera à la foisnom d'utilisateuretmot de passede manière interactive. Ensuite, l'image Push fonctionne simplement.

Même après avoir utilisé la nouvelle syntaxe, mon ~/.docker/config.json ressemble à ceci après la connexion:

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

Les informations d'identification se trouvent donc dans le trousseau de macOS.

0
Jing Li

Je sais que c'est un vieux fil, mais pour ceux qui utilisent windows 7 docker toolbox et ont essayé de pousser ou de s'enregistrer sur docker hub, j'ai résolu ce problème en laissant le **Docker Quick Start terminal** s'exécuter (ce terminal permet la connexion). Jusqu'à ce que vous ayez poussé des images, cela gardera le jeton en vie.

0
Dan

Essayez d'abord docker logout, puis reconnectez-vous avec docker login

0
MH Rohman Masyhar

Assurez-vous que le nom de votre référentiel de menu fixe correspond à votre nom de référentiel de docker local . Par exemple, si votre nom de référentiel local s'appelle "kavashgar/nodjsapp"

alors vous devriez aussi avoir un nom de dépôt "kavashgar" dans le docker hub

0
smakintel.com

dans votre fichier de configuration ~/.docker/config.json add

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

où XXXXX correspond au codage base64 de votre nom d'utilisateur : mot de passe (le: est inclus) de https://hub.docker.com

dans mon cas, j'ai eu la même erreur avec un pull. le problème (sous Windows) a été provoqué par le processus en cours d'exécution du double menu fixe, il faut donc les tuer tous et redémarrer un service et cela fonctionne.

0
Badr Bellaj

Mon problème était un jeton d'autorisation non valide après 5 minutes . Le Push a pris plus de 5 minutes en raison de la taille de l'image.

Je l'ai corrigé en augmentant la "Durée du jeton d'autorisation" à 10 minutes.

 enter image description here

0