Chcete-li spouštět příkaz docker login neinteraktivně, můžete nastavit příznak --password-stdin pro poskytnutí hesla prostřednictvím STDIN. Použití STDIN zabrání tomu, aby heslo skončilo v historii shellu nebo v souborech protokolu.
$ echo $DOCKER_PASS | docker login -u$DOCKER_USER --password-stdin $DOCKER_HOST
Když se přihlásíte do svého soukromého registru, docker automaticky vytvoří soubor $HOME/.docker/config.json Soubor měl informace o přihlašovacích údajích, takže můžete soubor uložit a zkopírovat na libovolného hostitele, když se chcete přihlásit do registru.
Obsah souboru takto:
{
"auths": {
"example.com": {
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
Doplněk Pokud se chcete přihlásit do registru multi docker na jednom serveru, stačí přidat další auth info.jako je tento:
{
"auths": {
"example.com": {
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
},
"example1.com":{
"auth": "xxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
Nyní můžete odesílat a stahovat obrázky z example.com a example1.com.
Docker 18 a novější
Nyní existuje oficiálně zdokumentovaný způsob, jak to udělat:
cat ~/my_password.txt | docker login --username foo --password-stdin
Docker 1.11 až Docker 17
Všechny argumenty můžete předat na příkazovém řádku:
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST
Pokud nezadáte DOCKER_HOST
, získáte hlavní repozitář Docker. Pokud některý z argumentů vynecháte, budete vyzváni k zadání tohoto argumentu.
Starší než 1.11
Stejná cesta jako výše, kromě toho, že musíte také předat --email
vlajka. Obsah tohoto není ve skutečnosti zkontrolován, takže je vše v pořádku:
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST --email [email protected]
Pro každého náhodného kolemjdoucího, který by na to mohl narazit a hledat způsob, jak to použít proti registru kontejnerů prostředí Openshift (Docker), můžete použít následující k poskytnutí URI registru spolu s přihlašovacími údaji k přihlášení pomocí tokenu Openshift.
$ echo "$(oc whoami -t)" | docker login -u $USER --password-stdin \
$(oc get route docker-registry -n default --no-headers | awk '{print $2}')
Login Succeeded
Výše uvedené dělá 3 věci:
- Předá token načtený z Openshift
oc whoami -t
-
Určuje URI registru Openshift
$(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
-
Přihlásí se do registru pomocí
$USER
+ token shora