it-swarm.com.de

verweigert: Der angeforderte Zugriff auf die Ressource wird verweigert: Andockfenster

Ich folge diesem Link , um mein erstes Docker-Image zu erstellen, und es ist erfolgreich verlaufen, und jetzt versuche ich, dieses Image von diesem Link in mein Docker-Repository zu verschieben. Immer wenn ich versuche, dieses Bild in das Repository zu verschieben, habe ich diese Art von Fehler erhalten. 

denied: requested access to the resource is denied

 enter image description here

Könnte mir jemand einen Hinweis auf dieses Problem geben? Jede Hilfe wäre dankbar.

Hinweis: Ich habe mich erfolgreich im Docker angemeldet 

188
Keyur Shah

Dank der Antwort von Dean Wu und diesem Kommentar von ses müssen Sie sich vor dem Drücken von der Befehlszeile aus bei Ihrem Docker-Hub-Konto anmelden

docker login

Nach den 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.

Das bedeutet, dass Sie Ihr Image tag _ muss, bevor Sie drücken:

docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage

und dann solltest du es schieben können.

docker Push YOUR_DOCKERHUB_NAME/firstimage
272
Webert Lima

Ich habe das gleiche Problem beim Docker-Anfängerkurs bekommen. Ich löste das Problem, indem ich vor dem Docker-Push-Aufruf einen docker login ausführte.

174
Dean Wu

Ich hatte das gleiche Problem, aber die hier gegebene akzeptierte Antwort funktionierte nicht für mich ... Ich versuchte ein paar Schritte und konnte es endlich schieben. Hoffe das hilft jemandem.

Hier sind die Schritte für mich:

1) Melden Sie sich am Docker an. 

docker login -u sirimalla

2) Markieren Sie Ihren Image-Build

mein Bildname hier ist: mylocalimage und standardmäßig hat es das Tag: latest
und mein Benutzername ist: sirimalla wie bei Docker Cloud registriert, und ich habe ein öffentliches Repository mit dem Namen: dockerhub erstellt.

so wird mein persönliches Repository jetzt: sirimalla/dockerhub und ich möchte mein Bild mit dem Tag Push: myfirstimagepush

Ich habe wie folgt getaggt:

docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush

3) Das Bild wie unten in mein persönliches Docker-Repository verschoben

docker Push sirimalla/dockerhub:myfirstimagepush

Und es wurde erfolgreich auf mein persönliches Docker-Repo übertragen.

38
Venu S

Beachten Sie auch, dass Sie beim Markieren Ihres Bildes dieses mit dem Namespace und dann mit Ihrem Repository/ mydevrepo kennzeichnen. Dies verwirrte mich, wenn ich den Docker-Dokumenten folgte. Danach habe ich verwendet:

docker login

Und dann habe ich mein Image mit dem 'markierten Namen' gepusht.

docker Push {namespace}/mydevrepo
38
Erick Boshoff

Verwenden Sie die folgenden Befehle:

$ 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

z.B. Ich habe ein öffentliches Repository wie manjeet86/docker-repo, die Befehle wären also:

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

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

Sehen Sie einfach : statt /, das war der Trick. Für mich geht das. Ich weiß nicht, ob Sie mit / anstelle von : auch Tags verwenden können, aber das kann zu einem anderen Zweck sein.

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

32
MSingh

Die Art und Weise, wie Andockbenutzer mit Benutzer-IDs und Repositorys umgehen, kann etwas verwirrend sein. Angenommen, Sie erstellen ein Benutzerkonto xyz auf dem Docker Hub. Das neue Konto erstellt automatisch einen Namespace xyz. Dann erstellen Sie ein Repository mit dem Namen myrepo. Der Repository-Name lautet tatsächlich xyz/myrepo

Um ein Bild zu pushen, sollten Sie folgendes tun:

docker Push docker.io/xyz/myrepo

Sie können bei Bedarf ": latest" oder ein anderes Tag hinzufügen.

Wenn Sie die requested access to the resource is denied-Fehlermeldung erhalten:

  1. Gehen Sie zu https://hub.docker.com/ und melden Sie sich als xyz an.
  2. Klicken Sie auf Ihr Repository xyz/myrepo.
  3. Klicken Sie auf Mitbearbeiter.
  4. Fügen Sie xyz als Mitarbeiter hinzu.
8
Paulo Merson

OS: Ubuntu16.04

Grund: Ich habe die Client-Konfigurationsdatei gelöscht (~/.docker/config.json).

Lösung: 

  • Docker neu starten.
    Service Docker-Neustart
  • Es muss Login-Informationen eingeben und generiert dann automatisch die Konfigurationsdatei.
    docker login --username = IhrDockernamenname [email protected]
7
Song

Docker hat auch eine Begrenzung für die Anzahl der privaten Repositorys, die Sie haben können. Wenn Sie ein privates Repository erstellen, indem Sie von Ihrem lokalen Computer aus pushen, wird das Repository erstellt. Es kann jedoch nichts weiter auf das Repository verschoben oder daraus abgerufen werden, und Sie erhalten den Fehler "Der Zugriff auf die Ressource wurde verweigert".

5
rghazali

Ich hatte heute das gleiche Problem. Das einzige, was für mich funktioniert hat, war ein explizites Login bei "docker.io":

docker login docker.io

Ich habe verschiedene andere Namen ausprobiert, und der Login scheint zu funktionieren, aber es würde später zu einem Fehler "angeforderter Zugriff auf die Ressource wird verweigert" geführt.

5
jsight

Ich bin nicht sicher, was mit dem Docker-Hub passiert ist, aber keine der veröffentlichten Lösungen funktionierte für mich. Hier ist die Umgehung, mit der ich ab Januar 2018 gearbeitet habe:

  1. Gehen Sie zu hub.docker.com und ändern Sie Ihr Repository in privat
  2. In Ihrer Shell:

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. Gehen Sie zurück zum Docker Hub und wechseln Sie das Repo wieder in die Öffentlichkeit. Das hat für mich funktioniert.
5

Login von der App aus Ich habe es nur vom Terminal aus ohne Glück versucht. 

Dies ist die Version 17.06.1

 enter image description here

3
Ignacio Pascual

Einfache Arbeitslösung:

Gehen Sie hier https://hub.docker.com/, um ein PRIVATE-Repository mit Namen zu erstellen. Beispiel: johnsmith/private-repository Dies ist der NAME/REPOSITORY, den Sie für Ihr Image verwenden, wenn Sie das Image erstellen.

  • Zuerst docker login

  • Zweitens verwende ich "docker build -t johnsmith/private-repository:01 .", um ein Bild zu erstellen, und ich verwende "docker images", um das erstellte Bild wie in diesem gelben Feld unten zu bestätigen:

johnsmith/private-repository (REPOSITORY) 01 (TAD) c5f4a2861d6e (IMAGE ID) vor 2 Tagen (CREATED) 305 MB (GRÖSSE)

  • Drittens benutze ich docker Push johnsmith/private-repository:01

Erledigt!

3
Dung

Mein Problem bestand ganz einfach darin, ungültige Zeichen (ein zusätzliches /) in meinem Bildnamen zu verwenden:

myusername/something/image

ist ein ungültiger Bildname. Versuchen Sie es mit myusername/something-image. Hoffe das hilft jemandem.

3
patrickbadley

Gehen Sie wie folgt vor, wenn Sie versuchen, das Image auf den eigenen Nexus-Repository-Manager zu übertragen:

1) Melden Sie sich bei Ihrem Nexus Repository Manager an (Port 8443 ist einem bestimmten Docker Host Repository zugeordnet).

Sudo docker login xxx.mydomain.com:8443

2) Kennzeichnen Sie das Bild mit IHREM NEXUS-SERVER IP/DNS

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

3) Drücken Sie auf das Bild

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

Wenn Sie dieses Problem bei der Verwendung der Azure-Container-Registrierung feststellen, können Sie es beheben, indem Sie sich zuerst bei Ihrer Registrierung anmelden.

docker login yourregistry.azurecr.io

Und kennzeichnen Sie Ihr Bild dann mit dem Hostnamen Ihrer Registrierung.

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

Und dann endlich schieben.

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

Ich habe auch dieses Problem. Es stellt sich heraus, dass ich die freie Stufe benutze und versuche, mehr als ein Image in das private Repository zu verschieben. 1 Image privat machen und der Rest arbeitete für mich. 

1
Shige

Ich war auch bei diesem Problem, ich habe die Lösungen hier getestet, aber ohne Erfolg war ich richtig eingeloggt, zumindest entsprechend der Ausgabe von docker login, aber ich konnte das Bild nicht schieben. Was schließlich funktioniert hat, war einfach zu tun:

docker logout 

Und dann wieder docker login, es war so trivial. Ich bin nicht sicher, was passiert ist, aber das erneute Login hat erzwungen.

1
Hito

Wenn es nach docker login immer noch fehlschlägt, stellen Sie sicher, dass das Repository, in das Sie den Push versetzen möchten, erstellt wurde.

1
louis_guitton

benennen Sie Ihr Bild in Benutzername/Bildname um Docker-Tag Ihr-aktuelles-Bild/aktuelles-Bild

0
Italo José

In diesem Fall ist es hilfreich für alle ...
Ich hatte das gleiche Problem und hier ist was mein Problem und das FIX war.

  • Ich hatte einen Computer in meinem Testnetzwerk namens "Galaxie".
  • Ich richte die Docker-Registrierung mit dem folgenden Befehl ein:

    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
    

    Dann habe ich versucht, ein Bild von einem Laptop im Netzwerk in die Galaxie zu schieben, also habe ich folgendes gemacht:

    docker login galaxy
    

    Dies würde mir einen Fehler geben, der besagt:

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

    Seltsamerweise bestand die Lösung für dieses Problem darin, ein Login wie folgt durchzuführen:

    docker login galaxy:443
    

    Dies führte zu einem erfolgreichen Login.

    Also versuchte ich, das Bild von meinem Laptop in die "Galaxie" zu verschieben.
    Ich hatte bereits ein Tag für mein Bild erstellt, das so aussah:

    galaxy/myImage:0.0.1
    

    Also habe ich versucht es so zu schieben:

    docker Push galaxy/myImage:0.0.1
    

    Worauf ich die Antwort bekam:

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

    Seltsamerweise entdeckte ich, dass das Problem darin bestand, das Bild zunächst wie folgt zu taggen:

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

    ... und dann den Push so machen:

    docker Push galaxy:443/myImage:0.0.1
    

    Aus irgendeinem Grund musste ich den Port als erforderlichen Teil des Repository-Namens in das Tag aufnehmen.



    Hoffe das hilft anderen.

  • 0
    Deoji

    Ein weiterer (ziemlich kluger) Grund dafür: Sie haben keine privaten Repos mit Ihrem Plan.

    0
    Costa Shapiro

    Mein Problem bei Git war die Projektberechtigungskonfiguration. Ich habe es behoben, indem ich die "Container-Registrierung" in Einstellungen-> Allgemein-> Sichtbarkeit, Projektfunktionen, Berechtigungen und die Container-Registrierung für mein Projekt aktiviert habe ( Link ):

     enter image description here 

    Melden Sie sich von der "Docker for Windows" -Anwendung ab und von https://hub.docker.com/ site ab und führen Sie nach "docker login" und "docker push" ..__ aus.

    0
    Vladimir

    TL; DR docker login funktionierte unter macOS nicht, aber der Docker-Login über die App funktionierte

    Wenn der Befehl docker login direkt vom Terminal aus verwendet wurde, wurden meine Anmeldeinformationen erfolgreich abgefragt. Nachdem ich sie korrekt eingegeben hatte (keine E-Mail-Adresse, nur die Docker-ID funktioniert), wurde login succeeded angekündigt, aber jede Anforderung an Push wurde ausgeführt landen in einem denied: requested access to the resource is denied

    Als ich mich jedoch über die ausgeführte macOs Docker-App anmeldete (siehe das Symbol in der Symbolleiste), funktionierte es. Es kann also zu Inkonsistenzen zwischen docker login und der ausgeführten Docker-App/dem ausgeführten Daemon kommen

    0

    Ich bin mit der gleichen Nachricht hierher gekommen, aber von Azure DevOps.

    In meinem Fall habe ich docker-compose und nicht nur docker verwendet und die Build-Pipeline in yaml geschrieben.

    - task: [email protected]
      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
    

    Die Nachricht, die ich erhielt, lautete speziell, dass versucht wurde, auf docker.io zu pushen, was nicht das war, was ich wollte. Ich hatte beabsichtigt, dass dies zu meiner Azure-Container-Registrierung geht.

    Was fehlte, war diese Zeile unter den Eingaben:

    containerregistrytype: Azure Container Registry
    

    Der vorhandene Pipeline-Assistent, der den obigen Yaml erstellt hat, hatte diese Zeile überhaupt nicht. Hoffentlich hilft dies jemand anderem dabei, sich die Haare über Azure DevOps auszuziehen.

    0
    Kilanash

    In meinem Fall habe ich zu einer Organisation gedrängt, in der ich in einem Team bin, das über Administratorrechte für das Repository verfügt.

    also mein Push-Befehl war: docker Push org-name/image-name

    Ich könnte erfolgreich auf Benutzername/Image-Name drücken, aber nicht auf die Organisation. Ich habe die Berechtigungen dreifach geprüft. Nichts hat geklappt.

    Die Lösung bestand darin, das Repo vom Docker-Hub zu löschen und erneut mit: docker Push org-name/image-name zu aktualisieren.

    Ich glaube, das Repo wurde ursprünglich vor der Umwandlung des Kontos in eine Organisation durchgeschoben.

    0
    schmidlop

    alle vorherigen Antworten waren korrekt. Ich möchte nur hinzufügen, dass eine Information, die ich sah, nicht erwähnt wurde.

    Wenn es sich bei dem Projekt um ein privates Projekt handelt, muss das Image korrekt mit einem persönlichen Zugriffstoken oder einem Bereitstellungstoken mit aktiviertem read_registry-Schlüssel konfiguriert werden.

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

    hoffe das ist hilfreich (auch wenn die frage bisher in der zeit gepostet wurde)

    0
    AtomiX84

    docker-Anmeldung über die Eingabeaufforderung funktionierte nicht. Ich erhielt immer wieder "angeforderten Zugriff auf die Ressource wurde verweigert".

    Nachdem Sie sich beim Docker für Windows-App angemeldet hatten, funktionierte Docker Push einwandfrei. Hoffe das hilft jemandem. 

    0
    Brett Edwards

    Für den Fall, dass jemand anderes auf dieses Problem stößt - in meinem Fall bestand die Ursache darin, dass ich den (veralteten) docker compose-Ansatz für Push-Bilder verwendete. Der Wechsel zum erwarteten docker Push hat das Problem für mich gelöst.

    0
    Dan Nissenbaum

    Diese Antwort ist für mein zukünftiges Selbst genauso wichtig wie für alle anderen. Dieses genaue Problem ist mir bekannt, wenn ich korrekt angemeldet bin, aber ich versuche, zu einem privaten Repo zu pushen, wenn die Anzahl der privaten Repos größer oder gleich der durch meinen Plan zulässigen Grenze ist.

    Ich bin nicht genau sicher, wie ich zu viele private Repos erstellen konnte, aber wenn mein Plan 5 private Repos umfasst, und ich habe irgendwie 6, dann ist dies der Fehler, den ich erhalte:

    denied: requested access to the resource is denied

    In meinem Fall ist es möglich, dass ich zu viele private Repositorys hatte, weil meine Standardsichtbarkeit auf privat gesetzt wurde:

     Default Visibility

    Hier bestimmen Sie, wie viele private Repos Sie haben können:

     Billing Plans

    Nachdem ich das problematische Repo veröffentlicht hatte, wurde das Problem offensichtlich:

     Make Repository Private 5 of 5

    In meinem Fall ist Sudo -E mit dieser Nachricht fehlgeschlagen. Die Lösung bestand darin, den Zugriff auf das Docker ohne Sudo zu ermöglichen (Erstellen eines Gruppen-Dockers, Hinzufügen des Benutzers (Jenkins) zur Gruppe, Festlegen der Gruppe auf /var/run/docker.sock) Nun benötigt docker Push kein Sudo und es funktioniert.

    0
    rhoerbe

    Ich hoffe wirklich, dass dies jemandem hilft (der die letzten Antworten zuerst als mich ansieht):

    Ich habe ständig versucht zu tippen 

    docker Push user/repo/tag
    

    Stattdessen

    docker Push user/repo:tag
    

    Da habe ich auch mein Tag so gemacht:

    docker tag image user/repo/tag
    

    ... die Hölle ging verloren.

    Ich hoffe aufrichtig, dass Sie meinen Fehler nicht wiederholen. Ich habe 30 Minuten dafür verschwendet ...

    0
    GeorgiG

    Meine Antwort bezieht sich auf ähnliche Probleme mit Azure DevOps, die ich mit der folgenden allgemeinen Pipeline hatte (sie ist genauer, aber es kann jemandem helfen, Zeit zu sparen):

    1. Holen Sie sich Quellen von Github
    2. Docker-Image erstellen
    3. Drücken Sie das Docker-Image in den Dockerhub

    Der Fehler, den ich bei Push denied: requested access to the resource is denied erhalten habe, hat mich hierher geschickt.

    Bitte achten Sie auf die Variable $(Build.Repository.Name), die in Ihrem Bildnamen enthalten ist. Standardmäßig ist dies der Name des Repositorys von github. Damit Ihr Push jedoch funktioniert, sollte es dockerhub_account_username/your_dockerhub_repository_name sein. 

    Ersetzen Sie $(Build.Repository.Name) durch dockerhub_account_username/your_dockerhub_repository_name in Ihrem Image-Namensfeld für Build- und Push-Schritte.

    Dies wird von der Dockerhub-API benötigt, um zu wissen, wohin das Bild verschoben werden soll.

    0
    gavri

    Nach dem Docker-Login müssen Sie Ihrem Image einen Präfix geben.

    z.B. Wenn Ihr Benutzername im Docker-Hub Shah ist, sollte das Bild Folgendes sein:

    Shah/firstimage
    
    0
    reck mi