GNU/Linux >> Linux Esercitazione >  >> Linux

accesso automatico alla finestra mobile all'interno di uno script bash

Per eseguire il comando docker login in modo non interattivo, puoi impostare il flag --password-stdin per fornire una password tramite STDIN. L'utilizzo di STDIN impedisce alla password di finire nella cronologia della shell o nei file di registro.

$ echo $DOCKER_PASS | docker login -u$DOCKER_USER --password-stdin $DOCKER_HOST

Quando accedi al tuo registro privato, la finestra mobile crea automaticamente un file $HOME/.docker/config.json Il file conteneva le informazioni sulle credenziali, quindi puoi salvare il file e copiarlo su qualsiasi host quando vuoi accedere al registro.

Il contenuto del file come questo:

{
     "auths": {
                   "example.com": {
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    }
            }
 }

Componente aggiuntivo Se desideri accedere al registro multidocker su un server, aggiungi semplicemente un'altra autenticazione info.come questa:

{
     "auths": {
                   "example.com": {
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    },
                    "example1.com":{
                                    "auth": "xxxxxxxxxxxxxxxxxxxxxxx"
                    }
            }
 }

Ora puoi eseguire il push e il pull delle immagini da example.com e example1.com.


Docker 18 e versioni successive

Ora c'è un modo ufficialmente documentato per farlo:

cat ~/my_password.txt | docker login --username foo --password-stdin

Da Docker 1.11 a Docker 17

Puoi passare tutti gli argomenti sulla riga di comando:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST

Se non specifichi DOCKER_HOST , otterrai il repository Docker principale. Se tralasci uno qualsiasi degli argomenti, ti verrà richiesto di inserirlo.

Più vecchio di 1.11

Lo stesso percorso di cui sopra, tranne per il fatto che devi anche passa un --email bandiera. Il contenuto di questo non viene effettivamente controllato, quindi va bene qualsiasi cosa:

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST --email [email protected]

Per qualsiasi passante casuale che potrebbe imbattersi in questo alla ricerca di un modo per utilizzarlo contro un registro contenitore (Docker) di un ambiente Openshift, è possibile utilizzare quanto segue per fornire l'URI del registro insieme alle credenziali per accedere utilizzando un token 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

Quanto sopra fa 3 cose:

  • Passa il token recuperato da Openshift oc whoami -t
  • Determina l'URI del registro di Openshift

    $(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
    
  • Accede al registro utilizzando $USER + token dall'alto


Linux
  1. Come eseguire il debug di uno script Bash?

  2. Digitare -a sta dando un errore nello script?

  3. Script Bash per compilare un modello?

  4. Pulizia automatica della cronologia di Bash?

  5. Come dividere una stringa nello script Bash

35 Esempi di script Bash

Come eseguire uno script Bash

Ottieni il percorso completo da Bash Script?

alternative --config java bash script

Apri Vim dall'interno di uno script di shell Bash

Esegui lo script bash come demone