安装卷时,docker中的目录为空

时间:2016-09-21 13:12:10

标签: docker node-red

当我使用

运行nodered时
docker run -v D:/mydir:/data

首次运行时,我的卷中会复制/ data的内容,这就是我所期望的。

如果我做

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

然后音量为空

我原本希望在开始时将volume_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

- >是空的!

2 个答案:

答案 0 :(得分:0)

将基础映像中的Docker does not support copying数据导入作为容器卷安装的主机目录。

答案 1 :(得分: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目录在映像中不为空,但您将其重新分配到主机上的空目录。