GNU/Linux >> Znalost Linux >  >> Linux

automatické přihlášení do dockeru v rámci bash skriptu

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


Linux
  1. Může být Bash skript připojen k souboru?

  2. Sazba -a Je zadávání chyby ve skriptu?

  3. Spusťte bash skript z adresy URL

  1. alternativy --config java bash skript

  2. Použijte proměnnou Bash ve skriptu SLURM sbatch

  3. Po přihlášení spusťte bash skript

  1. Jak ladit Bash skript?

  2. Bash skript k vyplnění šablony?

  3. Porovnávání vzorů skriptů Bash