Um den Docker-Login-Befehl nicht interaktiv auszuführen, können Sie das Flag --password-stdin so setzen, dass ein Passwort über STDIN bereitgestellt wird. Die Verwendung von STDIN verhindert, dass das Passwort im Verlauf der Shell oder in Protokolldateien landet.
$ echo $DOCKER_PASS | docker login -u$DOCKER_USER --password-stdin $DOCKER_HOST
Wenn Sie sich bei Ihrer privaten Registrierung anmelden, erstellt Docker automatisch eine Datei $HOME/.docker/config.json. Die Datei enthält die Anmeldeinformationen, sodass Sie die Datei speichern und auf einen beliebigen Host kopieren können, wenn Sie sich bei der Registrierung anmelden möchten.
Der Dateiinhalt sieht so aus:
{
"auths": {
"example.com": {
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
Add-on Wenn Sie sich bei der Multi-Docker-Registrierung auf einem Server anmelden möchten, fügen Sie einfach eine weitere Authentifizierungsinfo hinzu. So:
{
"auths": {
"example.com": {
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
},
"example1.com":{
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
Jetzt können Sie Bilder von example.com und example1.com übertragen und abrufen.
Docker 18 und höher
Dafür gibt es jetzt einen offiziell dokumentierten Weg:
cat ~/my_password.txt | docker login --username foo --password-stdin
Docker 1.11 bis Docker 17
Sie können alle Argumente auf der Befehlszeile übergeben:
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST
Wenn Sie DOCKER_HOST
nicht angeben , erhalten Sie das Haupt-Docker-Repo. Wenn Sie eines der Argumente weglassen, werden Sie zur Eingabe dieses Arguments aufgefordert.
Älter als 1.11
Derselbe Pfad wie oben, außer dass Sie auch müssen Übergeben Sie eine --email
Flagge. Der Inhalt davon wird nicht wirklich überprüft, also ist alles in Ordnung:
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST --email [email protected]
Für jeden zufälligen Passanten, der nach einer Möglichkeit sucht, dies für die Containerregistrierung einer Openshift-Umgebung (Docker) zu verwenden, können Sie Folgendes verwenden, um den Registrierungs-URI zusammen mit den Anmeldeinformationen bereitzustellen, um sich mit einem Openshift-Token anzumelden.
$ echo "$(oc whoami -t)" | docker login -u $USER --password-stdin \
$(oc get route docker-registry -n default --no-headers | awk '{print $2}')
Login Succeeded
Das Obige macht 3 Dinge:
- Übergibt Token, das von Openshift
oc whoami -t
abgerufen wurde -
Ermittelt den Registrierungs-URI von Openshift
$(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
-
Meldet sich mit
$USER
bei der Registrierung an + Token von oben