Sí, Docker le impide montar un volumen remoto dentro del contenedor como medida de seguridad. Si confía en sus imágenes y en las personas que las ejecutan, puede usar el --privileged
marcar con docker run
para deshabilitar estas medidas de seguridad.
Además, puede combinar --cap-add
y --cap-drop
para darle al contenedor solo las capacidades que realmente necesita. (Ver documentación) El SYS_ADMIN
La capacidad es la que otorga privilegios de montaje.
- sí
- Hay un problema cerrado mount.cifs dentro de un contenedor
https://github.com/docker/docker/issues/22197
según el cual sumando
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
a las opciones de ejecución hará que mount -t cifs sea operativo.
Lo probé y:
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
dentro del contenedor entonces funciona
Podrías usar el smbclient
comando (parte del paquete Samba) para acceder al servidor SMB/CIFS desde el contenedor Docker sin montarlo, de la misma manera que podría usar curl
para descargar o cargar un archivo.
Hay una pregunta sobre StackExchange Unix que se ocupa de esto, pero en resumen:
smbclient //server/share -c 'cd /path/to/file; put myfile'
Para múltiples archivos existe el -T
opción que puede crear o extraer .tar
archivos, sin embargo, parece que sería un proceso de dos pasos (uno para crear el .tar
y luego otro para extraerlo localmente). No estoy seguro de si podría usar una tubería para hacerlo en un solo paso.