Actualmente, somos una aplicación en ejecución en un único contenedor acoplable, la aplicación necesita que se pasen todo tipo de datos confidenciales como variables de entorno,
Estoy poniendo esos en el comando de ejecución para que no terminen en la imagen y luego en un repositorio, sin embargo, termino con un comando de ejecución muy no seguro,
Ahora, entiendo que existen secretos de Docker, sin embargo, ¿cómo puedo usarlos sin implementar un clúster? ¿O hay alguna otra forma de asegurar estos datos?
Atentamente,
security
docker
docker-swarm
Juan sebastian
fuente
fuente
Respuestas:
No puedes ... No admite secretos sin Swarm. A menos que '' pueda ser '' usted '' Enjambre '' usando solo un nodo.
La otra solución sería, creo, usar un software de bóveda de terceros como este:
https://www.vaultproject.io/
Pero luego, para usar los secretos en tus contenedores de Vault, necesitarías leer el documento.
Espero que esto te lleve al camino correcto para comenzar.
fuente
build-args
no se incluyen en la imagen final, pero solo se puede acceder durante el tiempo de creación de la imagen. Una solución adecuada es escribir los secretos en los archivos en el host (con los permisos apropiados, por supuesto) y luego montarlos en su contenedor docker. Su aplicación dentro del contenedor puede leer los secretos de esos archivosSí , puedes usar secretos si usas un archivo de composición . (No necesita ejecutar un enjambre).
Utiliza un archivo componer con docker-compose : hay documentación para "secretos" en un archivo docker-compose.yml .
Cambié a Docker-compose porque quería usar secretos. Estoy feliz de haberlo hecho, parece mucho más limpio. Cada servicio se asigna a un contenedor. Y si alguna vez quieres cambiar a ejecutar un enjambre, básicamente ya estás allí.
Nota: Los secretos no se cargan en el entorno del contenedor, se montan en / run / secrets /
Aquí hay un ejemplo:
1) Estructura del proyecto:
2) contenido de docker-compose.yml:
3) contenido super_duper_secret.txt:
4) Ejecute este comando desde la raíz del proyecto para ver que el contenedor tiene acceso a su secreto (Docker debe estar ejecutándose y docker-compose instalado):
Debería ver que su contenedor genera su secreto.
fuente
docker-compose
uso de un secreto? La documentación y mi comprensión de la implementación indican que el secreto no se configurará en el contenedor.docker-compose.yml
en un solo nodo); cuando comienzo el contenedor/run
solo contiene unnginx.pid
y no seMounts
muestra pordocker inspect $container
.