Ja, Docker hindert Sie aus Sicherheitsgründen daran, ein Remote-Volume im Container bereitzustellen. Wenn Sie Ihren Bildern und den Personen vertrauen, die sie ausführen, können Sie den --privileged verwenden mit docker run kennzeichnen um diese Sicherheitsmaßnahmen zu deaktivieren.
Außerdem können Sie --cap-add kombinieren und --cap-drop dem Container nur die Fähigkeiten zu geben, die er tatsächlich benötigt. (Siehe Dokumentation) Die SYS_ADMIN Fähigkeit ist diejenige, die Mount-Privilegien gewährt.
- ja
- Es gibt ein geschlossenes Problem mount.cifs innerhalb eines Containers
https://github.com/docker/docker/issues/22197
nach dem Hinzufügen
--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
zu den Ausführungsoptionen wird mount -t cifs betriebsbereit machen.
Ich habe es ausprobiert und:
mount -t cifs //<host>/<path> /<localpath> -o user=<user>,password=<user>
innerhalb des Containers funktioniert dann
Sie könnten den smbclient verwenden Befehl (Teil des Samba-Pakets), um vom Docker-Container aus auf den SMB/CIFS-Server zuzugreifen, ohne ihn zu mounten, genauso wie Sie curl verwenden könnten um eine Datei herunter- oder hochzuladen.
Es gibt eine Frage zu StackExchange Unix, die sich damit befasst, aber kurz gesagt:
smbclient //server/share -c 'cd /path/to/file; put myfile'
Für mehrere Dateien gibt es den -T Option, die .tar erstellen oder extrahieren kann Archive, dies sieht jedoch so aus, als wäre es ein zweistufiger Prozess (einer zum Erstellen der Datei .tar und dann eine weitere, um sie lokal zu extrahieren). Ich bin mir nicht sicher, ob Sie eine Pipe verwenden könnten, um dies in einem Schritt zu tun.