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.