Beim Pushing des Docker-Images (nach erfolgreicher Anmeldung) von meinem Host wird "nicht autorisiert: Authentifizierung erforderlich" angezeigt.
Details unten.
-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-Version: 1.9.1 (sowohl Client als auch Server)
- http://hub.docker.com hat auch das Repo erstellt (asamba / docker-whale).
Die / var / log / messages zeigt 403, ich weiß nicht, ob dieser Docker. Siehe unten.
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
Jede Hilfe wird geschätzt, bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ich habe den Push auch mit -f gemacht. Kein Glück!
Antworten:
Bearbeiten (13/08/2017)
Basierend auf dem Kommentar von @ KaraPirinc in Docker-Version 17, um sich anzumelden (Schritt 1),
Ich hatte auch das gleiche Problem. So löse ich es.
Schritt 1: Melden Sie sich beim Docker Hub an
Schritt 2: Erstellen Sie ein Repository im Docker-Hub . Sagen wir " mysqlserver: sql ".
quelle
docker login
funktioniert auch ohne die paramsDie von Ihnen veröffentlichte Lösung funktioniert bei mir nicht ...
Das funktioniert bei mir:
Erstellen Sie das Repository mit dem gewünschten Namen.
Benennen Sie das Bild beim Festschreiben des Bildes wie das Repository, einschließlich des Benutzernamens
<dockerusername>/desired-name
. Zum Beispielradu/desired-name
.quelle
OK! keine Ursache; Ich habe die Lösung gefunden. mit 403 Verdacht, dass das HTTP nicht zur richtigen URL geht.
Ändern Sie die Datei , die die Anmeldeinformationen gespeichert das hat
~/.docker/config.json
aus dem Standard erzeugt vonto - Beachten Sie die Änderung von docker.io -> index.docker.io/v1. Das ist die Veränderung.
Hoffentlich hilft das.
Beachten Sie, dass das Auth-Feld "Benutzername: Passwort" base64-codiert sein sollte. Beispiel: "Benutzername: Passwort" base64-codiert ist "dXNlcm5hbWU6cGFzc3dvcmQ =".
Ihre Datei würde also Folgendes enthalten:
quelle
sudo docker login -e [email protected] -u someuser -p somepass https://index.docker.io/v1/
docker login -u someuser https://index.docker.io/v1/
Dadurch wird nach dem Kennwort gefragt, wodurch verhindert wird, dass es im Befehlsverlauf landet.Wenn Sie Heroku verwenden, stellen Sie sicher, dass Sie nicht vergessen haben, "Heroku Container: Login", bevor Sie drücken.
quelle
Ich hatte ein ähnliches Problem mit einer ähnlich wenig hilfreichen Fehlermeldung, aber es stellte sich heraus, dass ich versuchte, ein Image, das ich erstellt hatte, gegen eine von Docker-Maschinen verwaltete Instanz zu pushen.
Als ich mich bei der Instanz selbst anmeldete, tat es
docker login
unddocker push
alles funktionierte gut.quelle
Ich hatte das gleiche Problem, aber ich habe es mit Push mit der angegebenen URL behoben. als: Docker Login -u https://index.docker.io/v1/
Konsolenausgabe:
quelle
Obwohl der Standardprozess darin besteht, sich anzumelden und dann zur Docker-Registrierung zu wechseln, besteht der Trick, um dieses spezielle Problem zu überwinden, darin, sich anzumelden, indem Benutzername und Passwort in derselben Zeile angegeben werden.
So :
Funktioniert
wohingegen
Schlägt fehl
quelle
Auch wenn ich mich angemeldet und die gesamte Konfiguration überprüft habe, funktioniert es immer noch nicht !!!
Es stellte sich heraus, dass ich beim Erstellen meines Dockers vergesse, meinen Benutzernamen vor den Repo-Namen zu setzen
(erfolgreich bauen)
Und dann, als ich in mein Repository verschoben habe, habe ich verwendet
Es wird das zeigen
unauthorized authentication required
Die Lösung ist also der Name des Builds und der Push sollte genau der gleiche sein
quelle
Das Problem für Neulinge ist, dass wir das Docker-Hub-Repository in der Regel wie ein Maven-Repository behandeln und glauben, dass es viele verschiedene Dateien, Ordner und andere Inhalte enthalten könnte.
Ein Docker-Repository ist dagegen nur ein einzelnes Image, es enthält nichts anderes. Es kann verschiedene Versionen desselben Bildes enthalten, aber es wird nur ein Bild enthalten.
Benennen Sie Ihr Repository auf dem Docker-Hub also mit demselben Namen wie das Image, in das Sie es verschieben möchten, und verwenden Sie Ihren Dockerhub-Benutzernamen als Präfix. Wenn Ihr Benutzername beispielsweise myusername und Ihr Bildname Docker-Wal ist , stellen Sie sicher, dass Sie Ihr Dockerhub-Repository als Docker-Wal benennen, und verwenden Sie die folgenden Befehle, um Ihr Bild zu markieren und in das Repository zu verschieben:
quelle
Wenn Sie zum ersten Mal ein neues privates Image übertragen, stellen Sie sicher, dass Ihr Abonnement dieses zusätzliche Image unterstützt.
Mit Docker können Sie 6 private Bilder benennen lassen, auch wenn Sie nur für 5 bezahlen, aber das 6. Bild nicht pushen. Das Fehlen einer informativen Nachricht ist verwirrend und irritierend.
quelle
Hier die Lösung für meinen Fall (private Repos, kostenloser Account Plan)
https://success.docker.com/Datacenter/Solve/Getting_%22unauthorized%3A_authentication_required%22_when_trying_to_push_image_to_DTR
Der zu pushende Image-Build-Name muss den gleichen Namen wie die Repos haben.
Beispiel: Repos auf dem Docker-Hub sind: accountName / resposName Image-Build-Name "accountName / resposName" -> Docker-Build -t accountName / resposName
Geben Sie dann docker push accountName / resposName: latest ein
Das ist alles.
quelle
Für mich hat es funktioniert, ein neues Repository zu erstellen und das Image mit umzubenennen
$ docker tag image_id myname/server:latest
quelle
Stellen Sie sicher, dass Sie mehr Steckplätze für private Bilder haben.
In meinem Fall habe ich einen Benutzer in eine Organisation konvertiert und es ist ein freies privates Image verloren gegangen, sodass frühere Pushs, die funktionierten, nicht mehr funktionierten.
quelle
Mein Problem war ein ungültiges Autorisierungstoken nach 5 Minuten. Der Push dauerte aufgrund der Bildgröße mehr als 5 Minuten.
Ich habe es behoben, indem ich die "Dauer des Autorisierungstokens" auf 10 Minuten erhöht habe.
quelle
docker login
kurz vor dem Ende des Uploads in einem anderen Terminalfenster zu laufenAdmin Area -> Settings -> CI/CD -> Container Registry
. URL-Pfad :/admin/application_settings/ci_cd
.Stellen Sie sicher, dass Ihr Docker-Repositry-Name mit Ihrem lokalen Docker-Repo-Namen übereinstimmt. Nehmen wir zum Beispiel an, Sie haben den lokalen Repo-Namen "kavashgar / nodjsapp".
dann solltest du auch ein repo namens "kavashgar" im docker hub haben
quelle
in Ihrer Konfigurationsdatei ~ / .docker / config.json hinzufügen
Dabei ist XXXXX die Base64-Codierung Ihres Benutzernamens: Passwort (das: ist enthalten) von https://hub.docker.com
In meinem Fall hatte ich den gleichen Fehler mit einem Zug. Das Problem (unter Windows) wurde durch einen Double Docker-Ausführungsprozess hervorgerufen. Beenden Sie also alle und starten Sie einen Dienst neu, und es funktioniert.
quelle
Es gab bereits gute Antworten, aber ich möchte eine erwähnen - Sie müssen KEIN Repository im Voraus erstellen, bevor Sie es veröffentlichen.
Das Problem für mich war, dass ich nicht den richtigen Benutzernamen des Kontos festgelegt habe, bei dem ich mich angemeldet habe. Sobald jedoch der richtige Benutzername vor dem Image (z. B.
YOURNAME/YOURIMAGE
) über sein Tag festgelegt wurde, können Sie ihn pushen, ohne zuvor ein neues Repository zu erstellen.quelle
Gleiches Problem hier beim Bildschieben:
Was ich getan habe:
Was es gedruckt hat:
Lösung: Verwenden Sie die neueste Anmeldesyntax.
Es wird interaktiv nach Benutzername und Passwort gefragt . Dann funktioniert der Bild-Push einfach.
Selbst nach Verwendung der neuen Syntax
~/.docker/config.json
sieht meine nach dem Anmelden folgendermaßen aus:Der Berechtigungsnachweis befindet sich also im Schlüsselbund von macOS.
quelle
Ich habe einen ähnlichen Fehler für sudo docker push / sudo docker pull im ecr-Repository erhalten. Dies liegt daran, dass aws cli in meinem Benutzer (abc) und Docker im Root-Benutzer installiert ist. Ich habe versucht, sudo docker push auf meinem Benutzer (abc) auszuführen.
Dies wurde behoben, indem aws cli in root installiert, aws mit aws configure in root konfiguriert und sudo docker push to ecr auf root user ausgeführt wurde
quelle
Versuchen Sie es
docker logout
zuerst und melden Sie sich dann erneut andocker login
quelle
Sie können die Datei xxx / .docker / config.json irgendwo mv, um damit umzugehen. Versuchen Sie dann erneut, sich anzumelden, um eine neue Datei config.json zu erstellen.
quelle
Wenn du rennst
windows 7 docker Registry
**Docker Quick Start terminal**
starten (dieses Terminal aktiviert die Verbindung) Bis Sie Bilder gepusht haben, bleibt das Token am Leben.docker login
Stellen Sie sicher, dass Sie das Bild mit dem Benutzernamen versehen
docker build -f Dockerfile -t 'username'/imagename
Bild schieben
docker image push username/imagename
Hinweis : Bildname in Kleinbuchstaben
quelle
Ich hatte ein ähnliches Problem.
Ich fand heraus, dass selbst wenn ich mich erfolgreich mit dem
docker login
Befehl anmelde, jeder Pull fehlschlug. Ich habe versucht, das aufzuräumen,~/.docker/config.json
aber nichts hat sich verbessert.In der Konfigurationsdatei habe ich gesehen, dass die Anmeldeinformationen nicht dort gespeichert wurden, sondern in einem
"credsStore": "secretservice"
. Unter Linux ist dies dasseahorse
oderPasswords and Keys
-Werkzeug. Ich habe dort nachgesehen und das gesamte Docker-Hub-Login bereinigt. Danach funktionierte ein neuer Docker-Login wie erwartet.quelle