2016-09-21 180 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目录不是空的,但是您将其重命名为主机上的空目录。