Oui, Docker vous empêche de monter un volume distant à l'intérieur du conteneur par mesure de sécurité. Si vous faites confiance à vos images et aux personnes qui les exécutent, vous pouvez utiliser le --privileged
drapeau avec docker run
pour désactiver ces mesures de sécurité.
De plus, vous pouvez combiner --cap-add
et --cap-drop
pour donner au conteneur uniquement les capacités dont il a réellement besoin. (Voir documentation) Le SYS_ADMIN
est celle qui accorde les privilèges de montage.
- oui
- Il existe un problème résolu mount.cifs dans un conteneur
https://github.com/docker/docker/issues/22197
selon lequel ajouter
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
aux options d'exécution rendra mount -t cifs opérationnel.
J'ai essayé et :
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
dans le conteneur fonctionne alors
Vous pouvez utiliser le smbclient
commande (partie du package Samba) pour accéder au serveur SMB/CIFS depuis le conteneur Docker sans le monter, de la même manière que vous pourriez utiliser curl
pour télécharger ou charger un fichier.
Il y a une question sur StackExchange Unix qui traite de cela, mais en bref :
smbclient //server/share -c 'cd /path/to/file; put myfile'
Pour plusieurs fichiers, il y a le -T
option qui peut créer ou extraire .tar
archives, mais cela semble être un processus en deux étapes (une pour créer le .tar
puis un autre pour l'extraire localement). Je ne sais pas si vous pourriez utiliser un tuyau pour le faire en une seule étape.