¿Cómo inyectar el nombre de usuario/contraseña del registro de Docker en el archivo docker-compose?
Para implementar una aplicación mediante docker y un registro remoto, se deben seguir los siguientes pasos:
- Utilizando el cliente de Docker, se ejecuta el comando
docker login
, de forma que se almacenen las credenciales directamente en$HOME/.docker/config.json
, o bien, en unalmacén de credenciales
especificado también en$HOME/.docker/config.json
. Luego se utiliza el comandodocker create
para iniciar la aplicación. - En
Kubernetes
, se puede generar unsecreto
utilizando el nombre de usuario y contraseña delregistro de Docker
. Luego, el secreto se puede inyectar en elhelm-chart
medianteimagePullSecret
. Posteriormente, el comandohelm install
se encarga de indicar a Kubelet que descargue la imagen dentro del contenedor creado en el pod programado. Para actualizar el registro de la imagen, se pueden actualizar el nombre de la imagen y el secreto de extracción antes de la reinstalación.
Tengo tres preguntas:
-
¿Cómo puedo establecer el
nombre de usuario
ycontraseña
, o inyectar estas credenciales en los servicios contenidos endocker-compose
, sin necesidad de ejecutardocker login
en cada host de implementación? (como en nu -
¿Puedo poblar un
almacén de credenciales
especificado en un archivo$HOME/.docker/config.json
al ejecutar el comandodocker login
en una máquina, para luego especificar el mismoalmacén de credenciales
en el archivo$HOME/.docker/config.json
de otra máquina, y utilizar la respuesta de la pregunta anterior para inyectar o extraer las credenciales? -
Si el
daemon de Docker
verifica las credenciales dentro de los almacenes de credenciales especificados en$HOME/.docker/config.json
, ¿cuál es el uso delprograma auxiliar
?
davy.ai
docker-compose
, puedes definirlos como variables de entorno en el archivodocker-compose.yml
o en un archivo env, de la siguiente manera:Luego, estas variables de entorno pueden ser utilizadas en el Dockerfile o en el comando que inicia la aplicación.
Sí, puedes poblar el almacenamiento de credenciales especificado en
$HOME/.docker/config.json
en una máquina usandodocker login
, luego copiar el mismo archivo de configuración a otra máquina y utilizar las credenciales del almacenamiento en la segunda máquina sin necesidad de ejecutardocker login
nuevamente. Sin embargo, debes asegurarte de que el almacenamiento de credenciales sea accesible en la segunda máquina, por ejemplo, montándolo como un volumen.El
programa auxiliar
se utiliza para interactuar con almacenamientos externos de credenciales, como Keychain en macOS o wincred en Windows. Estos almacenes se utilizan para almacenar las credenciales de manera segura y evitar exponerlas en texto plano en el archivo de configuración. El demonio de Docker verifica si se especifica un almacenamiento de credenciales en el archivo de configuración y si el programa auxiliar está disponible, entonces lo utiliza para recuperar las credenciales cuando sea necesario.