[Docker@OMV3] Host-Verzeichnis wird nicht korrekt an Container weitergegeben

  • Hallo zusammen :),


    ich nutze seit einiger Zeit OMV als Datengrab und zusätzlich eine zweite VM mit Docker zur Bereitstellung diverser Dienste. Gerne möchte ich mir die zweite VM sparen und deshalb Docker direkt auf dem OMV-Host laufen lassen.


    U.a. nutze ich ein Homegear-Docker-Image zur Ansteuerung meiner Hausautomatisierung. Dabei werden 3 Verzeichnisse auf dem Host in den Docker-Container gemountet (-v Parameter). Das ganze funktioniert auch zuverlässig auf meinen alten Host.


    Nun habe ich auf meinem Testsystem (OMV3) das Docker-Plugin aktiviert und wollte den Homegear-Container umziehen. Das durchgereichte Verzeichnis liegt auf einem Datenspeicher (/media/XYZ/docker/homegear/) und hat die erforderlichen Berechtigungen.


    Das starten vom Homegear-Container funktioniert wie gewohnt - problematisch wird es erst, wenn ich in den Container wechsel und Homegear starten möchte. Homegear benötigt u.a. viele *.so-Dateien, welche im Container unter /var/lib/homegear liegen, was wiederum vom Host (/media/XYZ/docker/homegear/lib/) durchgereicht wird. Leider kann homegear jedoch nicht auf die Dateien zugreifen. Wenn ich manuell (auch als root) eine .so-Datei im Container ausführen möchte (./xyz.so), so erscheint der Fehler "Permission denied". Wenn ich die .so-Datei nun in ein Verzeichnis verschiebe, welche nicht vom Host durchgereicht ist, so kann ich die Datei ausführen.


    Zweiter Test: gleiche Vorgehensweise, nur habe ich jedoch die durchgereichten Verzeichnisse auf dem Host unter /media/test (also diesmal nicht auf den Datenspeicher, sondern direkt auf der OMV-Platte) abgelegt und an den Homegear-Container durchgereicht & siehe da - Homegear kann nun auf die Dateien zugreifen.


    Testweise habe ich das ganze noch unter OMV2 durchgetestet - gleiches Phänomen.


    Woran könnte das ganze liegen? Im Docker-IRC sind sie leider auch ziemlich ideenlos =(


    Freue mich auf Antworten von euch.


    Viele Grüße

  • Das hört sich nach einem Berechtigungsproblem an. Vergleiche doch mal die Zugriffsrechte der beiden Ordner / Dateien.

    omv 6.x | 64 bit | omvextrasorg 6.x |
    used plugins: omv-extras | portainer | rsnapshot | antivirus
    used container: portainer/portainer | nextcloud/all-in-one | linuxserver/swag | paperless-ngx | jellyfin/jellyfin | lmscommunity/logitechmediaserver | adguard/adguardhome |

  • Könnte durchaus sein. Anbei mal der ls von den betroffenen Verzeichnissen:


    root@openmediavault:/# ls -l /media/XYZ/docker/homegear
    insgesamt 12
    drwxrws--- 4 root root 4096 Jan 24 11:25 etc
    drwxrws--- 7 root root 4096 Jan 25 02:34 lib
    drwxrws--- 2 root root 4096 Jan 24 11:25 log


    root@openmediavault:/# ls -l /media/test
    insgesamt 12
    drwxrwx--- 4 root root 4096 Jan 25 01:56 etc
    drwxrwx--- 7 root root 4096 Jan 25 02:34 lib
    drwxrwx--- 2 root root 4096 Jan 25 01:56 log




    Wofür steht das s bei der Berechtigung?

  • In der Wiki von Ubuntuusers:
    Das Set-UID-Recht („Set User ID“ bzw. „Setze Benutzerkennung“) sorgt bei einer Datei mit Ausführungsrechten dafür, dass dieses Programm immer mit den Rechten des Dateibesitzers läuft. Bei Ordnern ist dieses Bit ohne Bedeutung.


    Das heist du hast hier vermutlich ACL's die dir die Probleme bereiten. Wenn du diese zurücksetzt kann es vieleicht gehen

    omv 6.x | 64 bit | omvextrasorg 6.x |
    used plugins: omv-extras | portainer | rsnapshot | antivirus
    used container: portainer/portainer | nextcloud/all-in-one | linuxserver/swag | paperless-ngx | jellyfin/jellyfin | lmscommunity/logitechmediaserver | adguard/adguardhome |

  • bestimmt. Leider bin ich in der shell nicht so gut unterwegs. Es gibt aber ein plugin in OMV-extras: openmediavault-resetperms
    Damit kann mann die Rechte zurücksetzen.

    omv 6.x | 64 bit | omvextrasorg 6.x |
    used plugins: omv-extras | portainer | rsnapshot | antivirus
    used container: portainer/portainer | nextcloud/all-in-one | linuxserver/swag | paperless-ngx | jellyfin/jellyfin | lmscommunity/logitechmediaserver | adguard/adguardhome |


  • Scheint nicht wirklich zu funktionieren, die Berechtigung sieht noch genauso aus:


    root@openmediavault:/media/XYZ/docker/homegear# ls -l
    insgesamt 12
    drwxrwsr-x 4 root users 4096 Jan 24 11:25 etc
    drwxrwsr-x 7 root users 4096 Jan 25 02:58 lib
    drwxrwsr-x 2 root users 4096 Jan 24 11:25 log

  • Anbei die Berechtigungen für die .so-Dateien. Ein ausführen ist weiterhin nicht möglich:


    root@openmediavault:/media/XYZ/docker/homegear/lib/modules# ls -l
    insgesamt 9068
    -rwxrwxrwx 1 root users 392720 Jan 24 13:08 mod_beckhoff.so
    -rwxrwxrwx 1 root users 487368 Jan 24 13:08 mod_enocean.so
    -rwxrwxrwx 1 root users 2004152 Jan 24 13:08 mod_homematicbidcos.so
    -rwxrwxrwx 1 root users 826560 Jan 24 13:08 mod_homematicwired.so
    -rwxrwxrwx 1 root users 798984 Jan 24 13:08 mod_insteon.so
    -rwxrwxrwx 1 root users 410040 Jan 24 13:08 mod_intertechno.so
    -rwxrwxrwx 1 root users 367976 Jan 24 13:08 mod_ipcam.so
    -rwxrwxrwx 1 root users 1124032 Jan 24 13:08 mod_knx.so
    -rwxrwxrwx 1 root users 346832 Jan 24 13:08 mod_kodi.so
    -rwxrwxrwx 1 root users 931480 Jan 24 13:08 mod_max.so
    -rwxrwxrwx 1 root users 292096 Jan 24 13:08 mod_miscellaneous.so
    -rwxrwxrwx 1 root users 566576 Jan 24 13:08 mod_philipshue.so
    -rwxrwxrwx 1 root users 710304 Jan 24 13:08 mod_sonos.so

  • Ich habe nun noch ein wenig mit Unterstützung aus dem IRC rumprobiert. DIESER Issue beschreibt einen ähnlichen Fall.


    Nun habe ich zuerst den Datenspeicher, welcher auch an Docker durchgereicht wird, neu eingebunden: mount /media/XYZ -o remount,exec


    Anschließend nochmal getestet - ging leider wieder nicht. Also nochmal den Docker-Container neu gestartet & siehe da - alles klappt. Das hat unter OMV2 als auch unter OMV3 funktioniert.


    Kann ich über die Oberfläche von OMV festlegen, dass er exec für diesen Datenspeicher erlauben soll?

  • Kann ich über die Oberfläche von OMV festlegen, dass er exec für diesen Datenspeicher erlauben soll?

    Ich weis nicht genau was du damit meinst?

    omv 6.x | 64 bit | omvextrasorg 6.x |
    used plugins: omv-extras | portainer | rsnapshot | antivirus
    used container: portainer/portainer | nextcloud/all-in-one | linuxserver/swag | paperless-ngx | jellyfin/jellyfin | lmscommunity/logitechmediaserver | adguard/adguardhome |

  • Kann mich leider jetzt erst melden :)


    Ich nutze das Docker-Plugin. Ich erstelle auf meinem Datenspeicher einen Ordner, welchen ich an meinen Docker-Container durchreiche. Der Container muss jedoch nun Dateien, welche auf dem durchgereichten Ordner liegen, ausführen. Dies funktioniert jedoch nicht, da die Datenspeicher bei OMV3 (/etc/fstab) standardmäßig immer mit noexec gemountet werden. Ich muss nach jeden Neustart "mount /media/XYZ -o remount,exec" ausführen, damit meine Dockercontainer richtig laufen.


    Hier wäre es schön, wenn man unter OMV3 festlegen könnte, dass z.B. ein bestimmter Datenspeicher immer mit exec beim start gemountet wird.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!