Autenticarse en un registro autoalojado con nombre de usuario y contraseña
En este paso, aprenderá cómo autenticarse en un registro de Docker autoalojado utilizando un nombre de usuario y una contraseña. Si bien Docker Hub es el registro predeterminado, es posible que necesite interactuar con registros privados alojados dentro de su organización o en un proveedor de servicios en la nube.
Un registro autoalojado es un registro de Docker que usted configura y gestiona usted mismo, en lugar de utilizar un servicio público como Docker Hub. Esto se hace a menudo por razones de seguridad, cumplimiento o rendimiento.
Para autenticarse en un registro autoalojado, se utiliza el mismo comando docker login, pero debe especificar la dirección del registro. El formato es docker login <dirección_del_registro>.
Para este laboratorio, simularemos un registro autoalojado. Utilizaremos una dirección de marcador de posición myregistry.local. En un escenario del mundo real, esta sería el nombre de dominio real o la dirección IP de su registro.
Abra su terminal en el directorio ~/project.
Para iniciar sesión en nuestro registro autoalojado simulado, ejecute el siguiente comando, reemplazando tu_nombre_de_usuario_del_registro y tu_contraseña_del_registro con las credenciales hipotéticas que utilizaría para ese registro:
docker login myregistry.local
Se le pedirá que ingrese el nombre de usuario y la contraseña para el registro myregistry.local:
Inicia sesión con tu ID de Docker para enviar y descargar imágenes desde myregistry.local. Si no tienes un ID de Docker, ve a https://hub.docker.com/ para crear uno.
Nombre de usuario: tu_nombre_de_usuario_del_registro
Contraseña: tu_contraseña_del_registro
Ingrese el nombre de usuario y la contraseña hipotéticas. Dado que myregistry.local no es un registro real en funcionamiento en este entorno, es probable que el inicio de sesión falle con un mensaje de error que indique que el registro no es alcanzable o que la autenticación ha fallado. Esto es lo esperado para esta simulación. Lo importante es entender la sintaxis del comando y el proceso de especificar un registro diferente.
Error response from daemon: Get "http://myregistry.local/v2/": dial tcp: lookup myregistry.local on 127.0.0.53:53: no such host
Aunque el inicio de sesión falló porque el registro no existe, la sintaxis del comando docker login <dirección_del_registro> es correcta para intentar autenticarse en un registro autoalojado.
En un escenario real con un registro autoalojado en funcionamiento, un inicio de sesión exitoso resultaría en un mensaje de "Inicio de sesión exitoso", y sus credenciales para ese registro específico se almacenarían en su archivo de configuración de Docker (~/.docker/config.json).
Examinemos el archivo de configuración de Docker para ver cómo se almacenan la información del registro.
cat ~/.docker/config.json
Verá una estructura JSON. Después de un inicio de sesión exitoso en Docker Hub en el paso anterior, debería ver una entrada para https://index.docker.io/v1/. Si hubiera iniciado sesión correctamente en myregistry.local, vería una entrada adicional para esa dirección de registro.
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "..."
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/..."
},
"credsStore": "desktop"
}
La sección auths contiene información de autenticación para diferentes registros en los que ha iniciado sesión. Cada clave en auths es la dirección del registro, y el valor contiene los detalles de autenticación.
Este paso demostró cómo especificar la dirección de un registro autoalojado cuando se utiliza docker login.