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
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!
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="
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
La solution que vous avez publiée ne fonctionne pas pour moi ...
C'est ce qui fonctionne pour moi:
Créez le référentiel avec le nom souhaité.
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
.
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.
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
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
si vous utilisez heroku, assurez-vous de ne pas oublier de "conteneur heroku: connectez-vous" avant de pousser.
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.
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'
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.
Voici la solution à mon cas (pension privée, plan de compte gratuit)
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.
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
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.
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
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.
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.
Essayez d'abord docker logout
, puis reconnectez-vous avec docker login
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
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.