web-dev-qa-db-fra.com

refusée: l'accès demandé à la ressource est refusé: docker

Je suis ce lien pour créer mon premier menu fixe Image, et cela a fonctionné avec succès. Je tente maintenant d'insérer cette image dans mon référentiel de menu fixe à partir de ce lien . Mais chaque fois que j'essaie d'insérer cette image dans un référentiel, j'ai ce type d'erreur. 

denied: requested access to the resource is denied

enter image description here

Quelqu'un pourrait-il me donner un indice sur ce problème? Toute aide serait appréciée.

Remarque: je me suis connecté avec succès à docker 

188
Keyur Shah

Merci à la réponse fournie par Dean Wu et ce commentaire par ses , avant d'appuyer, n'oubliez pas de vous connecter depuis la ligne de commande vers votre compte docker hub

docker login

Selon les docs :

You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.

Donc, cela signifie que vous devez taguer votre image avant d'appuyer sur:

docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage

et alors vous devriez pouvoir le pousser.

docker Push YOUR_DOCKERHUB_NAME/firstimage
272
Webert Lima

J'ai eu le même problème en prenant le cours débutant de docker. J'ai résolu le problème en faisant un docker login avant l'appel Push du menu fixe.

174
Dean Wu

J'avais le même problème, mais j'acceptais la réponse donnée ici ne fonctionnait pas pour moi… J'ai essayé quelques étapes et je pouvais me déplacer pour pousser enfin. J'espère que ça aide quelqu'un.

Voici les étapes travaillées pour moi:

1) Connectez-vous au docker. 

docker login -u sirimalla

2) Marquez votre image de construction

mon nom d’image est ici: mylocalimage et par défaut, il contient l’étiquette: dernier
et mon nom d’utilisateur est: sirimalla comme enregistré auprès de docker cloud, et j’ai créé un référentiel public nommé: dockerhub

donc mon référentiel personnel devient maintenant: sirimalla/dockerhub et je veux pousser mon image avec le tag: myfirstimagepush

J'ai marqué comme ci-dessous:

docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush

3) Poussé l'image dans mon référentiel de menu fixe comme indiqué ci-dessous

docker Push sirimalla/dockerhub:myfirstimagepush

Et cela a réussi à atteindre mon dépôt personnel de docker.

38
Venu S

Il est également important de noter que lorsque vous marquez votre image, vous la marquez à l'aide du Namespace puis de votre référentiel/ mydevrepo . Cela m'a confondu lorsque j'ai suivi les documents Docker. Après cela j'ai utilisé:

docker login

Et puis j'ai poussé mon image en utilisant le 'tagged name'.

docker Push {namespace}/mydevrepo
38
Erick Boshoff

Utilisez les commandes ci-dessous:

$ docker login
<enter user name and password for Docker Hub Repository>

$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image

$ docker Push {docker-hub-username}/{default-repo-folder-name}:first-image

par exemple. J'ai un dépôt public comme manjeet86/docker-repo afin que les commandes soient:

$ docker tag first-image manjeet86/docker-repo:first-image

$ docker Push manjeet86/docker-repo:first-image

Il suffit de voir : au lieu de /. Ça marche pour moi. Je ne sais pas si cela vous permet de taguer avec / à la place de :, mais cela pourrait servir à autre chose.

https://docs.docker.com/engine/reference/commandline/tag/#examples

32
MSingh

La manière dont docker gère les identifiants utilisateur et les référentiels peut être un peu déroutante. Supposons que vous créez un compte utilisateur xyz sur le hub Docker. Le nouveau compte établit automatiquement un espace de noms xyz. Vous créez ensuite un référentiel appelé myrepo. Le nom du référentiel sera en fait xyz/myrepo

Pour pousser une image, vous devez faire:

docker Push docker.io/xyz/myrepo

Vous pouvez ajouter ": latest" ou une autre étiquette si nécessaire.

Si vous obtenez le message d'erreur requested access to the resource is denied:

  1. Allez sur https://hub.docker.com/ et connectez-vous en tant que xyz.
  2. Cliquez sur votre référentiel xyz/myrepo.
  3. Cliquez sur Collaborateurs.
  4. Ajoutez xyz en tant que collaborateur.
8
Paulo Merson

OS: Ubuntu16.04

Raison: j'ai supprimé le fichier de configuration du client ( ~/.docker/config.json )

Solution: 

  • Redémarrez le menu fixe.
    redémarrage du docker de service
  • Il doit entrer les informations de connexion, puis génère automatiquement le fichier de configuration.
    docker login --username = votredockerhubername [email protected]
7
Song

Docker a également une limite sur le nombre de référentiels privés que vous pouvez avoir. Si vous créez un référentiel privé en le poussant à partir de votre ordinateur local, il le créera, mais rien ne pourra plus y être poussé ou extrait et vous obtiendrez l'erreur "L'accès demandé à la ressource est refusé".

5
rghazali

J'ai eu le même problème aujourd'hui. La seule chose qui a fonctionné pour moi a été de me connecter explicitement à "docker.io":

docker login docker.io

J'ai essayé divers autres noms et le nom de connexion semblerait fonctionner, mais il en résulterait ultérieurement l'erreur "L'accès demandé à la ressource est refusé".

5
jsight

Je ne sais pas ce qui est arrivé à Docker Hub, mais aucune des solutions publiées ne m'a fonctionné. Voici le travail qui a finalement fonctionné pour moi en janvier 2018:

  1. Allez sur hub.docker.com et changez votre référentiel en privé
  2. Dans votre coquille:

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB

docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag

docker login docker.io

docker Push dockhubusername/verse_gapminder:mytag

  1. Retournez au hub de docker et changez le repo en public… .. Cela a fonctionné pour moi.
5

Connectez-vous depuis l'application. Je n'ai essayé que depuis le terminal sans succès. 

Ceci est la version 17.06.1

 enter image description here

3
Ignacio Pascual

Solution de travail simple:

Allez ici https://hub.docker.com/ pour créer un référentiel PRIVÉ avec le nom par exemple johnsmith/private-repository c'est le NAME/REPOSITORY que vous utiliserez pour votre image lors de la construction de l'image.

  • D'abord, docker login

  • Deuxièmement, j’utilise "docker build -t johnsmith/private-repository:01 ." pour créer une image et j’utilise "docker images" pour confirmer l’image créée, comme dans le cadre jaune ci-dessous:

johnsmith/private-repository (REPOSITORY) 01 (TAD) c5f4a2861d6e (IMAGE ID) il y a un jour (CREATED) 305MB (TAILLE)

  • Troisièmement, j'utilise docker Push johnsmith/private-repository:01

Terminé!

3
Dung

Mon problème utilisait très simplement des caractères non valides (un extra /) dans le nom de mon image:

myusername/something/image

est un nom d'image invalide. Essayez myusername/quelque-image. J'espère que ça aide quelqu'un.

3
patrickbadley

Pour ceux qui essaient de transférer l'image vers leur propre gestionnaire de référentiel Nexus, procédez comme suit:

1) Connectez-vous à votre Nexus Repository Manager (le port 8443 est associé à un référentiel d'hôte Docker spécifique).

Sudo docker login xxx.mydomain.com:8443

2) Marquez l’image avec votre serveur NEXUS SERVER IP/DNS

Sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0

3) Poussez l'image

Sudo docker Push xxx.mydomain.com:8443/myimage:1.0.0
2
Phil

Si vous rencontrez ce problème lors de l'utilisation du registre Azure Container, vous pouvez le résoudre en vous connectant d'abord à votre registre.

docker login yourregistry.azurecr.io

Et ensuite, balisez votre image pour qu'elle corresponde au nom d'hôte de votre registre.

docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]

Et puis enfin Poussez-le.

docker Push yourregistry.azurecr.io/yourimagename:[version]
2
hendryanw

J'ai aussi ce problème. Il s'avère que j'utilise le niveau gratuit et que j'essaie de transmettre plusieurs images dans le référentiel privé. Rendre une image privée et le reste public a fonctionné pour moi. 

1
Shige

J'étais avec ce problème aussi, j'ai testé les solutions ici présent mais en vain, j'étais correctement connecté, au moins selon la sortie de docker login mais je ne pouvais toujours pas pousser l'image. Ce qui a finalement fonctionné était simplement de faire:

docker logout 

Et puis docker login encore, c'était aussi trivial. Je ne suis pas sûr de ce qui s'est passé, mais le forçage de la reconnexion a fonctionné.

1
Hito

Si le problème persiste après docker login, assurez-vous que le référentiel auquel vous essayez d'envoyer le message a été créé.

1
louis_guitton

renommez votre image en nom d'utilisateur/nom d'image étiquette docker votre-image-actuelle/image-actuelle nom-utilisateur-dockerhub/nom-un-nom: votre-balise (exemple: dernière)

0
Italo José

Alors, au cas où cela serait utile à tout le monde ...
J'ai eu le même problème et voici ce que mon problème et le correctif était.

  • J'ai eu un ordinateur sur mon réseau de test nommé «galaxy».
  • J'ai installé le registre docker en utilisant la commande suivante:

    Sudo docker run -d 
    --restart=always \
    --name registry \
    -v /srv/registry/certs:/certs \
    -v /srv/registry/storage:/var/lib/registry \
    -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert \
    -e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key \
    -p 443:443 \
    registry:2
    

    Ensuite, j'essayais de transmettre une image à la galaxie à partir d'un ordinateur portable sur le réseau. J'ai donc fait ceci:

    docker login galaxy
    

    Cela me donnerait une erreur qui dirait:

    Login did not succeed, error: Error response from daemon: 
        Get https://galaxy/v2/: x509: certificate signed by unknown authority
    

    Bizarrement, la solution à ce problème consistait à créer un identifiant de ce type:

    docker login galaxy:443
    

    Cela a abouti à une connexion réussie.

    Alors j'ai alors essayé de pousser l'image de mon ordinateur portable vers «galaxie».
    J'avais déjà créé une étiquette pour mon image qui ressemblait à ceci:

    galaxy/myImage:0.0.1
    

    Alors j'ai essayé de le pousser en faisant ceci:

    docker Push galaxy/myImage:0.0.1
    

    A quoi j'ai eu la réponse:

    The Push refers to repository [docker.io/galaxy/myImage]
    7ab460574f86: Preparing 
    1aecaf56754d: Preparing 
    1df1b5f06ca4: Preparing 
    denied: requested access to the resource is denied
    

    Curieusement, j'ai découvert que la solution à ce problème était de commencer par baliser l'image comme suit:

    docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1
    

    ... et ensuite, faites la Push comme ceci:

    docker Push galaxy:443/myImage:0.0.1
    

    Donc, pour une raison quelconque, j'ai dû inclure le port dans la balise en tant que partie obligatoire du nom du référentiel.



    J'espère que cela aide les autres.

  • 0
    Deoji

    Une autre raison (plutôt intelligente) à cela: votre plan ne vous propose plus de repos privé.

    0
    Costa Shapiro

    Mon problème sur git était la configuration des permissions du projet. Je l'ai corrigé en activant le "Registre de conteneurs" dans les paramètres-> général-> Visibilité, les caractéristiques du projet, les autorisations et activer le Registre de conteneurs pour mon projet ( lien ):

     enter image description here 

    0

    Essayez de vous déconnecter de l'application "Docker pour Windows" et de vous déconnecter du site https://hub.docker.com/ et après avoir effectué les opérations "Connexion au docker" et "Push docker" .

    0
    Vladimir

    TL; DR docker login ne fonctionnait pas pour moi sur macOS, mais la connexion au docker depuis l'application fonctionnait

    Lorsqu'elle est utilisée directement à partir du terminal, la commande docker login a demandé avec succès mes informations d'identification et, une fois que je les ai saisies correctement (ne vous souvenez pas de courrier électronique, seul l'ID du menu fixe fonctionnera), il a annoncé login succeeded mais toute demande d'envoi se retrouver dans un denied: requested access to the resource is denied

    Cependant, lorsque je me suis connecté à partir de l'application docker macOs en cours d'exécution (voir l'icône sur la barre d'outils), cela a fonctionné. Donc, il peut y avoir des incohérences entre docker login et le docker en cours d'exécution app/daemon

    0
    Cyril Duchon-Doris

    Je suis venu ici avec le même message ci-dessus, mais d'Azure DevOps.

    Dans mon cas, j’utilisais docker-compos, pas seulement docker, et écrivais le pipeline de construction dans yaml.

    - task: DockerCompose@0
      displayName: 'Push services'
      inputs:
        azureSubscription: '$(Parameters.azureSubscriptionEndpoint)'
        azureContainerRegistry: '$(Parameters.azureContainerRegistry)'
        dockerComposeFile: '$(Parameters.dockerComposeFile)'
        additionalDockerComposeFiles: |
          docker-compose.release.yml
          docker-compose.ci.yml
        dockerComposeFileArgs: 'PublishFolder=publish'
        action: 'Push services'
        additionalImageTags: '$(Build.BuildId)'
        includeLatestTag: true
    

    Le message que j'ai reçu disait précisément qu'il essayait de pousser vers docker.io, ce qui n'était pas ce que je voulais. J'avais l'intention d'aller dans mon registre de conteneurs Azure.

    Ce qui manquait était cette ligne sous les entrées:

    containerregistrytype: Azure Container Registry
    

    L'assistant de pipeline existant qui a créé le yaml ci-dessus n'avait pas du tout cette ligne. J'espère que cela aidera quelqu'un d'autre à se tirer les cheveux par-dessus Azure DevOps.

    0
    Kilanash

    Dans mon cas, je poussais vers une organisation où je fais partie d'une équipe disposant d'autorisations d'administrateur sur le référentiel.

    donc ma commande Push était: docker Push org-name/image-name

    Je pourrais pousser avec succès à nom d'utilisateur/nom d'image mais pas à l'organisation. J'ai vérifié trois fois les autorisations. Rien n'a fonctionné.

    La solution consistait à supprimer le repo de docker hub et à repousser à l'état frais à l'aide de: docker Push org-name/image-name

    Pour ce que ça vaut, je pense que le repo avait été poussé avant que le compte ne soit converti en organisation.

    0
    schmidlop

    toutes les réponses précédentes étaient correctes, je veux juste ajouter une information que j'ai vue qui n'a pas été mentionnée;

    Si le projet est un projet privé pour pousser correctement l'image doivent être configurés un jeton d'accès personnel ou un jeton de déploiement avec la clé read_registry activée.

    source: https://gitlab.com/help/user/project/container_registry#using-with-private-projects

    j'espère que cela vous sera utile (même si la question est postée jusqu'à présent)

    0
    AtomiX84

    la connexion de docker à partir de la commande Invite ne fonctionnait pas. Je n'arrêtais pas d'obtenir "l'accès demandé à la ressource est refusé" lorsque j'essayais de pousser.

    Après avoir ouvert une session dans le menu fixe pour l’application Windows, le menu fixe Push a très bien fonctionné. J'espère que ça aide quelqu'un. 

    0
    Brett Edwards

    Au cas où quelqu'un d'autre se heurterait à ce problème - la cause, dans mon cas, était que j'utilisais l'approche (obsolète) docker compose pour les images Push. Le passage au docker Push attendu a résolu le problème pour moi.

    0
    Dan Nissenbaum

    Cette réponse concerne autant mon avenir que tout le monde. J'ai rencontré ce problème lorsque je me suis connecté correctement, mais je tente de passer à un référentiel privé lorsque le nombre de pensions privées est supérieur ou égal à la limite autorisée par mon plan.

    Je ne sais pas exactement comment j'ai pu créer trop de pensions privées, mais si mon plan comprend 5 pensions privées et que j'en ai 6, c'est l'erreur que je vais recevoir:

    denied: requested access to the resource is denied

    Dans mon cas, il est possible que j'ai trop de référentiels privés, car ma visibilité par défaut est définie sur privé:

     Default Visibility

    C'est ici que vous déterminez le nombre de pensions privées que vous pouvez avoir:

     Billing Plans

    Une fois que j'ai rendu publique le repo problématique, le problème est devenu évident:

     Make Repository Private 5 of 5

    0

    Dans mon cas, Sudo -E a échoué avec ce message. La solution consistait à fournir l'accès à docker sans Sudo (créer un dock de groupe, ajouter l'utilisateur (Jenkins) au groupe, définir le groupe sur /var/run/docker.sock). Maintenant, docker Push n'a pas besoin de Sudo, et cela fonctionne.

    0
    rhoerbe

    J'espère vraiment que cela aide quelqu'un (qui regarde les réponses finales d'abord comme moi):

    J'ai continuellement essayé de taper 

    docker Push user/repo/tag
    

    Au lieu

    docker Push user/repo:tag
    

    Depuis que j'ai aussi fait mon tag comme ça:

    docker tag image user/repo/tag
    

    ... tout l'enfer a perdu perdre.

    J'espère sincèrement que vous ne répétez pas mon erreur. J'ai perdu comme 30 minutes sur ce ...

    0
    GeorgiG

    Ma réponse est liée aux problèmes similaires rencontrés par Azure DevOps avec le pipeline commun suivant (il est plus spécifique mais il peut aider quelqu'un à gagner du temps):

    1. Obtenir des sources de github
    2. Construire une image de docker
    3. Poussez l'image de docker à dockerhub

    L'erreur que j'ai reçue à Push denied: requested access to the resource is denied m'a envoyé ici.

    Faites attention à la variable $(Build.Repository.Name) incluse dans le nom de votre image. C'est par défaut le nom du référentiel de github, mais pour que votre Push fonctionne, il devrait être dockerhub_account_username/your_dockerhub_repository_name

    Remplacez $(Build.Repository.Name) par dockerhub_account_username/your_dockerhub_repository_name dans le champ du nom de votre image pour les étapes de construction et Push.

    L'api dockerhub en a besoin pour savoir où pousser l'image.

    0
    gavri

    Après la connexion au menu fixe, vous devez nommer votre image avec le préfixe.

    par exemple. Si votre nom d'utilisateur dans docker-hub est Shah, l'image doit être:

    Shah/firstimage
    
    0
    reck mi