Compartir discos con Docker cuando usamos un usuario del AzureAD
10 Mar 2019 · 2 mins.A día de hoy, existe un issue (aún sin arreglar) en Docker CE for Windows que si has iniciado sesión con un usuario del Azure Active Directory (AzureAD) docker no es capaz de compartir los discos. Por mucho que lo intentes y aunque le pongas las credenciales correctas vuelves a comprobar y los discos siguen sin estar compartidos. Esto es un gran problema porque no podrás crear ningún volumen sobre tus contenedores.
Solución
La solución encontrada ha sido crear un usuario local en Windows que sea Administrador y usar sus credenciales.
Sencillo arreglo tras interpretar los errores en el log de Docker y comprenderlos. Agradecer e los cracks Edu @eiximenis y Jose Corral @jmanuelcorral por la ayuda prestada 👍 .
Fácil de hacer así que vamos ello:
- Creamos un usuario local en Windows. Por ejemplo:
User: DockerAdmin Pwd: 123456
Obviamente usa una password segura y no la del ejemplo.
-
Inicia sesión en Windows con
nombrepc\DockerAdmin
Si no sabes el nombre de tu máquina escribehostname
en consola y lo obtendrás. -
Tras el proceso de bienvenida al nuevo usuario, finaliza sesión y vuelve a iniciar con el usuario del Azure AD.
-
Abre las Settings de Docker Desktop. Botón derecho en el icono de docker en la bandeja de entrada.
-
Ve hacia Shared Drives, selecciona los discos a compartir, y pulsa Apply.
-
Ahora se nos abrirá el dialogo para introducir las credenciales de usuario. Este es el momento de poner el usuario que acabamos de crear
hostname
\DockerAdmin y la password. - Si todo ha funcionado correctamente los discos aparecerán marcados.
-Si pruebas a ejecutar:
docker run --rm -v c:/Users:/data alpine ls /data
Verás que ahora funciona correctamente 😃
Happy coding!
David.
UPDATE 10/10/2019:
Es probable que si ejecutas (debug) una aplicación Web con Docker configurado de forma automática desde Visual Studio, recibas un error CT126, que si entras en el detalle verás te dice Permisos denegados en la carpeta c:\Users\NombreDelUsuario
donde está intentando montar un volumen.
Como es lógico solo tienes que ir a esa carpeta y concederle permisos al usuario DockerAdmin que hiciste en los pasos de arriba y error resuelto.