staging.inyokaproject.org

Docker Volume für host zugänglich machen

Status: Ungelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

iceman80

Anmeldungsdatum:
18. September 2013

Beiträge: 37

Hallo zusammen,

ich taste mich gerade an das Thema Docker heran und habe auch schon ein paar Container auf meinem System am laufen. WEs gibt allerdings ein Thema, an dem ich momentan noch verzweifle. Die Benutzung von Volumes klappt bei mir nicht. Zwei Beispiele:

1. Jellyfin wenn ich dort nach Anleitung zuerst zwei Folder anlege:

1
2
mkdir /path/to/config
mkdir /path/to/cache

und diese im Container angebe:

1
2
3
4
5
6
7
8
9
docker run -d \
 --name jellyfin \
 --user uid:gid \
 --net=host \
 --volume /path/to/config:/config \
 --volume /path/to/cache:/cache \
 --mount type=bind,source=/path/to/media,target=/media \
 --restart=unless-stopped \
 jellyfin/jellyfin

sind diese trotzdem immer leer.

2. fhem Dort starte ich den Container mit

1
docker run -d --name fhem -p 8083:8083 fhem/fhem -v ~/fhem:/opt/fhem fhem/fhem

wird, so wie eigentlich im GitHub beschrieben, auch kein Verzeichnis in meinem home Verzeichnis angelegt. Ebenfalls erfolglos blieb die Angabe vom ganzen absoluten Pfad ( /home/user/fhem)...

Könnt Ihr mir einen Tip geben, wo dran das liegen kann?

Wie gesagt ich bin was Docker angeht ein Anfänger, wenn also noch Informationen zu Lösung notwendig sind, fragt ruhig.

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Hallo,

zum einen:

klappt bei mir nicht

ist immer etwas schwierig bzw. es ist nicht klar, was das bedeutet.

Zum zweiten würde ich mich für eine Syntax entscheiden und nicht volume und mount mischen. Dass es beides gibt ist historisch bedingt, bis Docker wohl irgendwann gemerkt hat, dass es komisch ist, volumes vom Typ bind und volumes vom Typ volume zu haben 😉 https://docs.docker.com/storage/volumes/

Wechsel bitte mal mit docker exec -ti <CONTAINER> bash in den laufenden Container und zeige die Ausgabe von mountpoint /config und all den anderen, die gemountet sein sollen.

Gruß BillMaier

iceman80

(Themenstarter)

Anmeldungsdatum:
18. September 2013

Beiträge: 37

Moin,

stimmt, 'klappt nicht' ist ne blöde Beschreibung. Um das ganze ein bisschen übersichtlicher zu machen, beschränke ich mich mal auf den fhem Container. Wenn ich mich mit exec in das Volume schalte bekomme ich mit 'ls' folgende Verzeichnisse/Dateien:

CHANGED  configDB.pm  contrib  COPYING  demolog  docs  FHEM  fhem.cfg  fhem.cfg.default  fhem.cfg.demo  fhem.pl  HISTORY  lib  log  MAINTAINER.txt  Makefile  README_DEMO.txt  README.SVN  t  UPGRADE  webfrontend  www

diese hätte ich nach meinem Container Aufruf:

1
docker run -d --name fhem -p 8083:8083 fhem/fhem -v ~/fhem:/opt/fhem fhem/fhem

In dem Ordner /home/<user>/fhem erwartet. Ich sehe sie aber nicht, bzw. das Verzeichnis fhem ist auf dem host System leer.

Ein Inspect auf dem Volume ergibt folgende Ausgabe:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[
    {
        "CreatedAt": "2020-11-27T06:11:50Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/df99b5c2d98ccab9615a3e570db09f96e1d3dc2ec2257af14777bf3a1888d452/_data",
        "Name": "df99b5c2d98ccab9615a3e570db09f96e1d3dc2ec2257af14777bf3a1888d452",
        "Options": null,
        "Scope": "local"
    }
]

Hilft das weiter?

iceman80

(Themenstarter)

Anmeldungsdatum:
18. September 2013

Beiträge: 37

Hi,

ich bin nun einen Schritt weiter. Es lag daran, dass in meinem docker run zweimal fhem/fhem angegeben war. Jetzt sehe ich, das mein Verzeichnis nach dem der Container läuft einem andere User und Group gehört:

Vorher:

1
drwxrwxrwx 14  user  user   0 Nov 28 07:30 fhem/

Nachdem der Container/Volume läuft:

1
drwxrw-rw- 14   6061   6061   4096 Nov 28 07:30 fhem/

Jetzt habe ich aber das Problem, dass mein host System offensichtlich nicht den User (6061) und die Group (6061) kennt und ich damit auch keinen Zugriff habe. Wie löse ich das Problem am elegantesten?

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

am elegantesten?

Hm.. Da ich für Docker nur mit root unterwegs bin, hab ich solche Probleme nicht.

- Spontan fällt mir ein: Docker Container mit einem anderen user starten (müsste gehen, zumindest unter kubernetes geht das). Das wäre einigermaßen elegant

Schau mal hier (ungetestet)

https://stackoverflow.com/questions/35734474/connect-to-docker-container-as-user-other-than-root

Gruß BillMaier

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Und? Gelöst?

BillMaier Team-Icon

Supporter

Anmeldungsdatum:
4. Dezember 2008

Beiträge: 6389

Hallo,

Hilfe gefunden und Thema gelöst? Dann bitte als solches markieren. Danke.

Gruß BillMaier

Antworten |