Ich habe einen Kubernetes-Cluster von der Stange, der auf AWS läuft und mit dem Skript kube-up
installiert ist. Ich möchte einige Container ausführen, die sich in einem privaten Docker Hub-Repository befinden. Aber ich bekomme immer einen Fehler "nicht gefunden":
Ich habe ein Geheimnis mit einer .dockercfg
-Datei erstellt. Ich habe bestätigt, dass es funktioniert, indem Sie das Skript hier ausführen:
Ich habe bestätigt, dass ich nicht das neue Format des .dockercfg-Skripts verwende, meins sieht so aus :
%Vor%Ich habe versucht, die Base64-Kodierung auf Debian statt auf OS X auszuführen , kein Glück Dort. (Es erzeugt die gleiche Zeichenfolge, wie zu erwarten ist.)
Hier ist das YAML für meinen Replication Controller:
%Vor% kubectl version
:
Irgendwelche Ideen?
Docker erzeugt eine config.json
Datei in ~/.docker/
Es sieht so aus:
Was Sie eigentlich wollen, ist:
%Vor%Hinweis 3 Dinge:
auths
wrapping https://
vor dem
URL Dann codieren Sie base64 und verwenden sie als Daten für den .dockercfg
name
Beachten Sie, dass die Zeile .dockercfg
eine Zeile ist (base64 erzeugt tendenziell eine mehrzeilige Zeichenfolge)
Ein weiterer möglicher Grund, warum "image not found" angezeigt wird, ist, wenn der Namespace Ihres Secret nicht mit dem Namespace des Containers übereinstimmt.
Beispiel: Wenn Ihr Bereitstellungs-YAML wie
aussieht %Vor%Dann müssen Sie sicherstellen, dass das Secret yaml einen passenden Namespace verwendet:
%Vor%Wenn Sie keinen Namespace für Ihr Geheimnis angeben, wird es im Standard-Namespace enden und nicht verwendet werden. Es gibt keine Warnmeldung. Ich habe gerade Stunden mit diesem Thema verbracht, also dachte ich, ich würde es hier teilen in der Hoffnung, dass ich jemand anderen die Zeit sparen kann.
Ich habe das gleiche Problem erlebt. Was ich bemerkt habe, ist das im Beispiel ( Ссылка ). dockercfg hat das folgende Format:
%Vor%Das von docker in meinem Rechner erzeugte sieht ungefähr so aus:
%Vor%Beim Überprüfen des Quellcodes stellte ich fest, dass es tatsächlich einen Test für diesen Anwendungsfall gibt ( Ссылка )
Ich bestätige Ihnen, dass wenn Sie einfach "auths" wie im Beispiel nehmen und verschlüsseln, es für Sie funktioniert.
Wahrscheinlich sollte die Dokumentation aktualisiert werden. Ich werde ein Ticket auf GitHub erheben.
Ein anderer Grund für diesen Fehler liegt möglicherweise in der Verwendung einer anderen kubectl-Version als der Cluster-Version (z. B. kubectl 1.9.x für einen 1.8.x-Cluster).
Das Format des geheimen Schlüssels, der durch den Befehl kubectl create secret docker-registry erzeugt wurde, hat sich zwischen den Versionen geändert.
Ein 1.8.x-Cluster erwartet ein Geheimnis mit dem folgenden Format:
%Vor%Aber das Geheimnis, das vom 1.9.x kubectl erzeugt wird, hat dieses Format:
%Vor%Überprüfen Sie also den Wert der .dockercfg-Daten Ihres Geheimnisses und vergewissern Sie sich, dass es mit dem von Ihrer kubernetes-Clusterversion erwarteten Format übereinstimmt.
Tags und Links docker kubernetes dockerhub