GNU/Linux >> Tutoriales Linux >  >> Linux

Inicio de sesión automático en la ventana acoplable dentro de un script bash

Para ejecutar el comando de inicio de sesión de Docker de forma no interactiva, puede configurar el indicador --password-stdin para proporcionar una contraseña a través de STDIN. El uso de STDIN evita que la contraseña termine en el historial del shell o en los archivos de registro.

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

Cuando inicia sesión en su registro privado, docker crea automáticamente un archivo $HOME/.docker/config.json El archivo tenía la información de Credenciales, por lo que puede guardar el archivo y copiarlo en cualquier host cuando desee iniciar sesión en el registro.

El contenido del archivo es así:

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

Complemento Si desea iniciar sesión en el registro multi docker en un servidor, simplemente agregue otra información de autenticación. Así:

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

Ahora puede enviar y extraer imágenes de example.com y example1.com.


Docker 18 y más allá

Ahora hay una manera oficialmente documentada de hacer esto:

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

Docker 1.11 a Docker 17

Puede pasar todos los argumentos en la línea de comandos:

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

Si no especifica DOCKER_HOST , obtendrá el repositorio principal de Docker. Si omite alguno de los argumentos, se le solicitará ese argumento.

Anterior a 1.11

La misma ruta que la anterior, excepto que necesita también pasa un --email bandera. El contenido de esto no está realmente verificado, por lo que todo está bien:

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

Para cualquier transeúnte aleatorio que pueda tropezar con esto buscando una manera de usar esto contra el registro de contenedores de un entorno Openshift (Docker), puede usar lo siguiente para proporcionar el URI del registro junto con las credenciales para iniciar sesión usando 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

Lo anterior hace 3 cosas:

  • Token de pases recuperado de Openshift oc whoami -t
  • Determina el URI de registro de Openshift

    $(oc get route docker-registry -n default --no-headers | awk '{print $2}'`)
    
  • Inicia sesión en el registro usando $USER + token desde arriba


Linux
  1. ¿Se puede conectar un script Bash a un archivo?

  2. Typeset -a ¿Está dando un error en el script?

  3. Bash Script para completar una plantilla?

  4. ¿Obtener ruta completa desde dentro de Bash Script?

  5. ¿Limpieza automática del historial de bash?

35 ejemplos de secuencias de comandos Bash

Cómo ejecutar un script Bash

Ejecutar script bash desde URL

nombre base con espacios en un script bash?

Ejecutar script bash como demonio

Ejecute el comando bash en la canalización de jenkins