OS: Ubuntu 18.04 Server
Docker 18.3 CE
Ich bin von meinem Windows 10-Laptop aus mit einer PuTTY SSH-Sitzung am Server angemeldet.
Ich habe Docker nicht auf meinem lokalen Windows-Laptop, daher werden alle Arbeiten auf dem Remote-Server ausgeführt.
Ich kann alle Docker-Befehle auf dem Remote-Server mithilfe der Terminalsitzung ausführen.
Wenn ich jedoch versuche, mein Image auf dem Docker-Hub zu speichern, wenn ich mich anmelden möchte, verwenden Sie Folgendes:
docker login
Ich erhalte die folgende Fehlermeldung:
error getting credentials - err: exit status 1, out: `GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files`
Ich habe keine Fehlermeldungen erhalten, als ich mein Image auf dem Remote-Server erstellt habe.
Ich sehe auch keinen .docker-Ordner im zugehörigen Home-Verzeichnis auf dem Remote-Server. Irgendwelche Ideen?
docker login
aus einem LXD / LXC-Container heraus zu laufen . Dieses Problem habe ich gelöst, indem ich es.docker/config.json
von meinem Host in mein$HOME/.docker/
Verzeichnis innerhalb des LXD / LXC-Containers kopiert habe , den ich manuell erstellt habe. Ich versuche gerade, ein anderes Problem herauszufinden, wollte aber fragen, ob Sie dies bereits versucht haben?Antworten:
Bearbeiten 2019-04-07:
Da dies die derzeit ausgewählte Antwort ist, sollten die Leute zuerst die unten stehende @ Anish Varghese-Lösung ausprobieren, da dies die einfachste zu sein scheint. Sie müssen nur gnupg2 installieren und Pakete übergeben:
Wenn es nicht funktioniert, können Sie meine ursprüngliche Lösung hier ausprobieren:
Ich hatte das gleiche Problem. Die Antwort von bak2trak hat funktioniert, aber die Anmeldeinformationen wurden im Klartext gespeichert. Hier ist die Lösung, wenn Sie sie in einem Passwortspeicher aufbewahren möchten.
1) Laden Sie den Docker-Berechtigungsnachweis von https://github.com/docker/docker-credential-helpers/releases herunter
2)
tar -xvf docker-credential-pass.tar.gz
3)
chmod u+x docker-credential-pass
4)
mv docker-credential-pass /usr/bin
5) Sie müssen den Docker-Berechtigungsnachweis-Pass einrichten (die folgenden Schritte basieren auf https://github.com/docker/docker-credential-helpers/issues/102#issuecomment-388634452 ).
5.1) installiere gpg und pass (
apt-get install gpg pass
)5.2)
gpg --generate-key
, geben Sie Ihre Daten ein. Sie sollten so etwas sehen:Kopieren Sie die Zeile 123 ...
5.3)
pass init 1234567890ABCDEF1234567890ABCDEF12345678
(Paste)5.4)
pass insert docker-credential-helpers/docker-pass-initialized-check
und setzen Sie das nächste Passwort "Pass wird initialisiert" (ohne Anführungszeichen).5.5)
pass show docker-credential-helpers/docker-pass-initialized-check
. Sie sollten sehen, dass der Pass initialisiert ist.5.6)
docker-credential-pass list
6) Erstellen Sie eine ~ / .docker / config.json mit:
7) Docker Login sollte jetzt funktionieren
Hinweis: Wenn bei der zukünftigen Ausführung die Fehlermeldung "Passspeicher ist nicht initialisiert" angezeigt wird, führen Sie den folgenden Befehl aus (der Passspeicher wird im Speicher neu geladen):
Sie werden nach Ihrem Passwort gefragt und der Passspeicher wird initialisiert.
Dies basiert auf dieser Diskussion: https://github.com/moby/moby/issues/25169#issuecomment-431129898
quelle
Die Installation der folgenden Pakete in Ubuntu hat mein Problem behoben
quelle
sudo apt install pass
, der Rest kam als seine Abhängigkeitengnupg2 pass
wird das Problem behoben?Ich hatte das gleiche Problem in Ubuntu 18.08 und dies funktionierte schließlich für mich .. als vorübergehende Lösung.
Ich hatte diesen Ordner erstellt,
home/.docker/
da einige Lösungen mir vorschlugen, eine Datei zu erstellenconfig.json
und Standardanmeldeinformationen darin zu schreiben, d. H.config.json
.Dann wurde Docker-Credential-Secretservice in etwas anderes umbenannt, damit diese Datei nicht abgerufen wird.
sudo mv / usr / bin / docker-Berechtigungsnachweis-Geheimdienst / usr / bin / Docker-Berechtigungsnachweis-Geheimdienst_x
und es hat funktioniert!
quelle
org.freedesktop.secrets
. Es ist nicht für Ubuntu 18 gefunden (einige Probleme). Nachdem Sie es (Docker-Credential-Secretservice) in etwas anderes umbenannt haben, greift es zurück, um die Konfigurationsdatei selbst zu erstellen. Sie können im Ordner home / .docker nachsehen, dass eine config.json-Datei erstellt worden wäre.docker-credential-secretservice
von GH installiert , einen~/.docker/config.json
mit Inhalt wie oben erstellt und dann versucht, mich anzumelden. Ich habe einen Fehler erhalten. Dann löschte der.docker
Ordnerconfig.json
und die/usr/bin/docker-credential-secretservice
ausführbare Datei und lief danndocker login
wieder mit Erfolgdocker-compose
und dann deinesudo mv /usr/bin/docker-credential-secretservice /usr/bin/docker-credential-secretservice_x
Umbenennung ausgeführt, es hat funktioniert. Weiß jemand, wofürdocker-credential-secretservice
verwendet wird?Wenn apt pass gnupg2 pass für Sie nicht funktioniert, können Sie auch das Paket golang-docker-credential-helpers installieren
quelle
Für mich
docker push
gescheitert mit... also wollte ich
docker login
aber nach Eingabe der Anmeldeinformationen folgendes bekommen:Zum Glück hatte ich einen anderen Computer zur Verfügung, auf dem ich mich ohne Änderungen am System anmelden konnte. Ich habe den Inhalt von
~/.docker/config.json
...... zur anderen Maschine und
docker push
arbeitete.quelle
Dies kann auch helfen, zumindest in Ubuntu 20.04:
https://hackernoon.com/getting-rid-of-docker-plain-text-credentials-88309e07640d https://github.com/docker/docker-credential-helpers/releases
quelle
Für mich war die einfachste Lösung, die Datei config.json im Verzeichnis .docker im Benutzerverzeichnis zu erstellen:
/home/.docker/config.json
Dann habe ich den Inhalt dieser Datei von dem Server kopiert, von dem aus ich mich beim Docker-Hub anmelden konnte.
Dies ist eine einfache Problemumgehung, da Sie kein Paket installieren oder aktualisieren müssen, was auf Produktionsservern nicht einfach möglich ist.
quelle
Nun, Sie haben die Lösung bereits gelesen, aber die Tatsache ist, dass gnupg2 jetzt nicht standardmäßig in Ubuntu 18+ installiert ist. Das ist der Grund
apt upgrade
, warum sich die Dinge irgendwann etwas anders verhalten.quelle
Nach der Antwort hatte ich verschiedene Probleme.
Glücklicherweise ist das Update einfach und Sie müssen nur das Paket installieren
rng-tools
: https://stackoverflow.com/a/32941065pass init <key>
(Schritt 5.3) wurde der Fehlergpg: decryption failed: No secret key
angezeigt.Tatsächlich ist dieses Problem darauf zurückzuführen, dass der geheime Schlüssel auf Root-Berechtigungen beschränkt ist.
Ich habe den Besitz der
.gnupg .password-store
Ordner im Homedir meines Benutzers geändert.Laden Sie dann den Dirmngr neu, um die Warnung "Unsicherer Besitz" zu vermeiden:
Wenn Sie nicht alles tun möchten, können Sie alle Befehle der Antwort als root / sudo ausführen.
quelle
Folgendes zu erstellen hat es für mich gelöst:
quelle
Einfache Lösung: Entfernen Sie einfach
"credsStore": "secretservice"
aus ~ / .docker / config.jsonquelle
Installieren Sie die folgenden Pakete in Ubuntu
Das ist für mich gearbeitet.
quelle