GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mounten Sie die SMB/CIFS-Freigabe in einem Docker-Container

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.


  1. ja
  2. 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.


Linux
  1. Wie aktiviere ich Unix-Dateiberechtigungen auf Samba Share mit Smb 2.0+?

  2. Upgrade von Ubuntu in Docker von 14.04 auf 16.04 mit Do-release-upgrade?

  3. So mounten oder symbolisieren Sie eine einzelne Datei in einem Docker-Container

  4. Wie man ein Host-Verzeichnis in einen Docker-Container einbindet

  5. So teilen Sie Daten zwischen Docker-Containern

So mounten Sie eine NFS-Freigabe unter Linux

So mounten Sie Windows Share unter Linux mit CIFS

So mounten Sie Windows Share unter Ubuntu Linux

So stellen Sie eine Verbindung zu Localhost in einem Docker-Container her

So führen Sie SSH in einen Docker-Container ein

So verwalten Sie Docker-Container