当我使用
运行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
- >是空的!
答案 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
目录在映像中不为空,但您将其重新分配到主机上的空目录。