2016-09-21 175 views
0

空當我運行安裝卷時,目錄是搬運工

docker run -v D:/mydir:/data 

/數據我在第一次運行卷複製的內容nodered,這就是我所期待的。

如果我讓

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

然後卷爲空

我期待得到node_modules的內容,在啓動時正在複製的卷......我缺少什麼?


我可以說明,多一點點:

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

- >列表文件

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

- 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 

的>列表內容 - - >是空的!

+0

恐怕Docker文檔說你試圖做的事不被支持。 看到第一個點: https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes 你能解釋你想達到什麼,我會看看我是否可以找到另一種方式? –

回答

0

您將主機目錄掛載爲卷,因此沒有任何複製正在進行 - 容器內的裝載路徑正在映射到主機上的路徑,因此您會看到主機目錄的內容。

當你裝載它們時,卷位於Union File System之外,所以你不會得到一個合併圖像內容和主機目錄內容的覆蓋圖。相反,您可以繞過該卷的圖像內容,並將其重新分配給主機。

樣品:

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 

你看到一個差異的原因是因爲/data體積defined in the Dockerfile和空的形象,讓你看到你的主機目錄的內容符合市場預期。圖像中的modules目錄不是空的,但是您將其重命名爲主機上的空目錄。