Datei aus Docker-Container auf das Host-System der DS kopieren

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

dstevens

Benutzer
Registriert
20. Aug. 2014
Beiträge
74
Reaktionspunkte
2
Punkte
8
Guten Tag zusammen,

o.g. Aufgabe mutete zunächst ganz leicht an. So langsam verzweifle ich aber.

Setup:
DS918+, DSM 7.1.-42962 Update 1

Im Docker-Container läuft IoBroker (buanet-iobroker), in IoBroker läuft eine Instanz von Node-Red. Mit einer Write-File-Node von Node-Red habe ich eine Datei TEST.txt erstellt. Diese Datei will ich auf die Syno kopieren.

Lösungsansatz 1: Kopieren über Terminal​

Im Docker-Terminal
find -name TEST.txt
ergibt:
/node_modules/iobroker.node-red/TEST.txt

der vollständige Pfad lautet also:
/opt/iobroker/node_modules/iobroker.node-red/TEST.txt

Nun SSH in die Syno als Admin.
Kommando ls liefert
Drive
Ich befinde mich also im Home-Verzeichnis des Admin. In diesen Ordner Drive möchte ich nun die Datei TEST.txt aus dem Docker-Container kopieren.

Kurzer Check auf welchen Namen der Container hört:
sudo docker ps
liefert
CONTAINER ID ab6e717f3401 und NAMES buanet-iobroker1

Also wieder im Terminal der Syno:
sudo docker cp ab6e717f3401:/opt/iobroker/node_modules/iobroker.node-red/TEXT.txt /Drive

Das Kommando wird ohne Fehlermeldung ausgeführt. Allerdings liegt dann dort keine Datei ab.
Habe die Quelldatei mittels
chmod 777 TEST.txt

bereits rechtemäßig so zurecht gebogen, dass sie nicht nur root gehört (zumindest bin ich der Meinung, dass ich das mit diesem Befehl getan habe, denn mit den Terminal-Kommandos bin ich wirklich nicht sonderlich fit).
Bringt alles nichts.

Lösungsansatz 2: Volume einbinden​

Hier im Forum habe ich einen Thread gefunden, in dem der folgende Weg beschrieben wird.

Docker-Container gestoppt. Dann diesen bearbeitet. Unter "Volume-Einstellungen" zwei Varianten getestet:
1.) Das Verzeichnis /opt/iobroker in den (gemeinsamen) Ordner docker/iobroker eingebunden. Folge: Der Ordner ist leer. Kopiere ich dann die Datei TEST.txt innerhalb des Docker-Containers aus seinem Quellverzeichnis nach /opt/iobroker, startet der Container nicht mehr. Fehlermeldung:
Please check/ recreate mounted folder or volume and start over.
There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker or a valid backup file!

2.) Einbinden des kompletten Pfads zur TEST.txt
Der Container startet dann zwar, aber das Verzeichnis auf der Syno bleibt leer.

Ich weiß nicht, was ich sonst noch machen soll.

Wer kann mir helfen?
 
Lege Dir auf der Syno ein neues Verzeichnis an und mounte das zusätzlich in den Container und kopiere die Datei dorthin.
 
wie spreche ich dieses Verzeichnis denn aus dem Container heraus an?
 
Zuletzt bearbeitet von einem Moderator:
Du mountest es zum Beispiel als /Test in den Container und änderst deinen Befehl dann ab:
sudo docker cp ab6e717f3401:/opt/iobroker/node_modules/iobroker.node-red/TEXT.txt /Test
 
Sorry, wenn ich gerade etwas begriffstutzig bin ... aber ich habe jetzt auf der Syno ein Verzeichnis docker/temp.
Dieses Verzeichnis temp muss ich an den Docker binden. Soweit klar. Aber welches Verzeichnis aus dem Docker verbinde ich denn damit, wenn /opt/iobroker bereits verbunden ist und auch nicht funktioniert hat?
 
Es ist egal, welches. Da du es ja nur für das manuelle Kopieren nutzt.
 
Ich habe jetzt opt/iobroker/node_modules genommen. Jetzt startet der Container nicht mehr. So egal scheint es nicht zu sein.
 
Es läuft!
Danke Euch!
 
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