
Con Ubuntu, las unidades USB se montan automáticamente /media/<user>/<drive>
cuando se conectan. Quería usar esto para que las unidades USB recién conectadas estuvieran disponibles en un contenedor Docker en ejecución. Entonces solía -v /media/<user>:/media/<user>
montar todo el directorio principal de los puntos de montaje USB en el contenedor.
Esto funciona bien si la unidad USB estaba conectadaantesel contenedor comienza. En este caso el punto de montaje USB tiene permisos 0777
y pertenece a <user>
. Si se conecta una unidad USB cuando el contenedor estáya corriendo, el punto de montaje aparece en el contenedor pero tiene permisos 0700
y es propiedad de root
.
¿Alguien puede arrojar algo de luz sobre lo que posiblemente esté sucediendo aquí? Me imagino que las unidades USB se montan automáticamente como 0700
pertenecientes a root
por defecto y luego se activa algún otro mecanismo para cambiar esto a 0777
y <user>
. Docker solo no recoge el cambio. ¿Es esto cierto?
Ya busqué en toneladas de hilos de foros y listas de correo, pero no pude entender el mecanismo. También probé algunas reglas de udev (comoÉste) pero estos no tuvieron ningún efecto.
Respuesta1
Sé que la pregunta es de 2018, pero una solución sería usar montajes de enlace y configurar la "propagación de enlace" en "compartida" (no disponible para volúmenes).
En lugar de:
-v /media/<user>:/media/<user>
Usar:
--mount type=bind,source=/media/<user>,target=/media/<user>,bind-propagation=shared
Más información sobre la propagación de enlaces:https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation
Respuesta2
rshared
Los submontajes del montaje original se exponen a montajes de réplica y los submontajes de montajes de réplica también se propagan al montaje original. pero la propagación también se extiende hacia y desde los puntos de montaje anidados dentro de cualquiera de los puntos de montaje originales o de réplica.
docker run -v /media/$(whoami):/storage:rshared -it ubuntu bash
Más información sobre el montaje automático:
https://github.com/moby/moby/issues/32512
https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation