2016-09-21 4 views
0

leer ist, wenn ich mitwenn Volumen Montage Verzeichnis in Docker

docker run -v D:/mydir:/data 

der Inhalt/Daten nodered Lauf wird in meinem Volumen auf den ersten Lauf kopiert, das ist, was ich erwartet habe.

Wenn ich

docker run -v D:/mydir:/usr/src/node-red/node_modules nodered 

mache Dann ist das Volumen leer

Ich hatte erwartet, den Gehalt an node_modules im Volumen zur Startzeit wird erhalten kopiert ... was bin ich dabei?


Ich kann zeigen, dass ein bisschen mehr:

docker run --rm -v d:/VM:/data nodered/node-red-docker ls /data 

-> Liste Dateien

docker run --rm ls /usr/src/node-red/node_modules 

-> Liste Inhalt node_modules

docker run --rm -v d:/VM:/usr/src/node-red/node_modules nodered/node-red-docker ls /usr/src/node-red/node_modules 

- -> ist leer!

+0

Ich bin die Docker docs Angst sagen, dass das, was Sie versuchen zu tun ist, nicht unterstützt. Siehe den ersten Punkt hier: https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes Können Sie erklären, was Sie versuchen, sehen zu erreichen, und ich werde, wenn ich finden kann ein alternativer Weg? –

Antwort

0

Sie stellen Hostverzeichnisse als Volumes bereit, sodass keine Kopiervorgänge durchgeführt werden. Der Bereitstellungspfad im Container wird dem Pfad auf dem Host zugeordnet, sodass Sie den Inhalt des Hostverzeichnisses sehen .

Volumes außerhalb der Union File System sitzen, wenn Sie sie montieren, so dass Sie nicht bekommen, eine Überlagerung, die den Inhalt des Bildes und den Inhalt des Host-Verzeichnis übergeht. Stattdessen umgehen Sie den Inhalt des Bilds für dieses Volume und weisen es Ihrem Host zu.

Proben:

touch /docker/nodered-modules/sample.txt           
docker run --rm -v /docker/nodered-modules:/usr/src/node-red/node_modules nodered/node-red-docker ls /usr/src/node-red/node_modules           
sample.txt 

touch /docker/nodered-data/sample.txt                           
docker run --rm -v /docker/nodered-data:/data nodered/node-red-docker ls /data  
sample.txt 

Der Grund, warum Sie einen Unterschied zu sehen sind, weil die /data Volumen defined in the Dockerfile und leer im Bild ist, so sehen Sie den Inhalt Ihres Verzeichnisses Host wie erwartet. Das Verzeichnis modules ist im Image nicht leer, aber Sie verweisen es auf ein leeres Verzeichnis auf Ihrem Host.

0

Docker does not support copying Daten aus dem Basisbild in Wirt Verzeichnisse, die als Behältervolumen angebracht sind.

Verwandte Themen