Docker Container Pfad lokal mounten

Status
Für weitere Antworten geschlossen.

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo,

Ich habe mittels Docker Image einen Container angelegt und würde nun gerne mit folgendem Befehl

Rich (BBCode):
docker run -d -v /path/on/host:/data

einen Pfad innerhalb des Containers in mein lokales Dateisystem mounten.
Ich erhalte aber immer folgende Meldung zurück:

docker: "run" requires a minimum of 1 argument.
See 'docker run --help'.
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container


Alternativ zeigte ein
Rich (BBCode):
docker inspect
das der container den gesuchten mountpoint unter /volume1/@docker/volumes/ID/_data bereit hält
wenn ich versuche diesen Pfad zu mounten erhalte ich immer

mount: /volume1/@docker/volumes/ID/_data is not a block device

Kann mir jemand sagen was ich falsch mache?
Danke
 
Zuletzt bearbeitet:

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Mittels
Rich (BBCode):
mount --bind /volume1/@docker/volumes/ID/_data /mnt/newdir
bekomme ich das Verzeichniss einmalig gemountet. jetzt fehlt nurnoch die permanente umsetzung in /etc/fstab

Die ersten Versuche waren leider erfolglos. Kann da jemand behilflich sein?
Danke
 

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Danke Fusion!
Der Eintrag hat funktioniert
habe ich mittels mount -a kontrolliert
leider ist der Eintrag in /etc/fstab nach einem reboot wieder entfernt worden.

Kann mir jemand sagen wiso und wie ich das umgehen kann?
Danke
 

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Es hat mittels Bootscript funktioniert

1. Create the new, empty subfolder you wish to link with your music folder (in my case it is '/web/dj/music')
2. Login to your server as 'root' and use your regular DSM admin passsword.
3. vi /etc/rc
4. scroll to the very bottom of the file, just above the exit 0 line,
5. Press 'i' on the keyboard to go into insert mode.
6. Type the following line of code;

mount --bind "/volume1/music" "/volume1/web/dj/music"

(Make sure you have the folders in the correct order, source first > destination second)

5. Press 'Esc'
6. To save and exit, type :wq
7. Login to DSM and reboot your server.


Aber den Tip mit dem DSM Taskplaner werde ich mir nochmal anschauen.
Vielen Dank!
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.479
Punkte für Reaktionen
363
Punkte
103
Rich (BBCode):
docker run -d -v /path/on/host:/data

docker: "run" requires a minimum of 1 argument.
See 'docker run --help'.
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container

Du hast nur "docker run [OPTIONS]" angegeben, die Angabe des Images fehlt.

Aairborn schrieb:
einen Pfad innerhalb des Containers in mein lokales Dateisystem mounten
Du meints Du willst einen Lokalen-Pfad in einen Pfad des Containers mounten. So rum wird ein Schuh draus ;)
In Docker ist das Konzept der Volumes der vorgesehene Weg um Daten aus einem Docker-Container auf dem Host zu persistieren.
Mit der Option -v gibst Du an welches lokalen Pfad und Du an welchen Pfad im Docker-Container mounten willst. Im Endeffekt kommt dabei auch nur "mount --bind" zum Einsatz.
 
Zuletzt bearbeitet:

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Die Angabe des Images in den Befehl einzubauen habe ich auch versucht, leider ohne Erfolg.

Eigentlich habe ich versucht einen Pfad aus dem Docker Image in mein Lokales Dateisystem zu mounten.
mount /docker/volume/pfad/ /mnt/lokal/new_dir
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.479
Punkte für Reaktionen
363
Punkte
103
Habe ich verstanden. Ich verstehe nur nicht warum. Es ist nicht vorgesehen dauerhaft zu speichernde Daten im Container abzulegen.
Oder willst Du einfach nur bestehende Dateien aus dem Image "mopsen" um diese woanders zu verwenden?

Aber auch das macht man über -v..
Code:
docker exec -ti {Label oder ContainerId} /bin/bash

Damit hast Du eine Shell im laufenden Container und kannts die Daten in den über -v gemounteten share schieben. Dann hast Du die Daten auch im Host.
 

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Ganz genau, ich möchte nur bestehende Daten aus dem Container in meinem Lokalen Filesystem bearbeiten und für ein tägliches Backup heranziehen.
Mit den Dockerbefehlen muss ich mich noch genauer beschäftigen.

Ich habe zwar ein wenig erfahrung mit debian aber keine mit synology NAS systemen.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.479
Punkte für Reaktionen
363
Punkte
103
Es ist tatsächlich nicht verkehrt die Docker Grundlagen zu kennen wenn man damit arbeiten will :)

Ganz genau, ich möchte nur bestehende Daten aus dem Container in meinem Lokalen Filesystem bearbeiten und für ein tägliches Backup heranziehen.
Mit den Dockerbefehlen muss ich mich noch genauer beschäftigen.

Wenn die Daten aus dem Container in einem Volume liegen kann man direkt über DSM darauf zugreifen. Dann ist auch das tägliche Backup kein Problem.
 

Aairborn

Benutzer
Mitglied seit
01. Apr 2016
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Wenn die Daten aus dem Container in einem Volume liegen kann man direkt über DSM darauf zugreifen. Dann ist auch das tägliche Backup kein Problem.

Mir war nur die cryptische ID im Wege. Darum habe ich es auf einen standard Pfad gemounted um über die shell schnell zugriff zu bekommen.
Ich bin wohl so ein Gewohnheitstier...

Dies ist meine erste Erfehrung mit Docker und ich bin begeistert davon und werde mich damit näher beschäftigen.
Ich nutze schon seit Jahren VMware und Hyper-V beruflich und dieser Docker Container war nur für unseren Sohn für einen Minecraft Server.
Aber das System scheint es wehrt zu sein sich damit näher zu beschäftigen.

Danke nochmals
 
Zuletzt bearbeitet:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.479
Punkte für Reaktionen
363
Punkte
103
Gerne!

Sagen wir mal so: ich habe bis vor kurzem mein Homelab mit ESXi betrieben. Ich bin komplett auf Docker umgestiegen.
Für Docker spricht der deutlich geringere Ressourcenverbrauch (CPU, RAM, Harddisk) und als Bonus weiß man genau was die Bewegtdaten ausmachen.
Zudem kann man reproduzierbar Docker-Container aus Docker-Images erzeugen! Das ist so einfach, dass ich es einer VM mit Provisionierungswerkzeugen wie Ansible, Chef oder Puppet vorziehe.

Windows 2016 Server bringt Docker auch von Haus aus mit und kann sogar mit Windows(!) Docker-Images umgehen. Der Rest der Welt kann nur mit Linux Docker-Images umgehen.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat