安装卷时,docker 中的目录为空
when mounting volume, directory is empty in docker
当我 运行 与
结点时
docker run -v D:/mydir:/data
/data 的内容首先被复制到我的卷中 运行,这是我所期望的。
如果我
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
--> 为空!
Docker does not support copying 数据从基础镜像到挂载为容器卷的主机目录。
您正在将主机目录作为卷安装,因此没有任何复制正在进行 - 容器内的安装路径被映射到主机上的路径,因此您看到的是主机的内容目录。
挂载时,卷位于联合文件系统之外,因此您不会获得将映像内容与主机目录内容合并的覆盖层。相反,您实际上绕过了该卷的图像内容,并将其重新指向您的主机。
样本:
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
目录在图像中不为空,但您将其重新指向主机上的一个空目录。
当我 运行 与
结点时docker run -v D:/mydir:/data
/data 的内容首先被复制到我的卷中 运行,这是我所期望的。
如果我
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
--> 为空!
Docker does not support copying 数据从基础镜像到挂载为容器卷的主机目录。
您正在将主机目录作为卷安装,因此没有任何复制正在进行 - 容器内的安装路径被映射到主机上的路径,因此您看到的是主机的内容目录。
挂载时,卷位于联合文件系统之外,因此您不会获得将映像内容与主机目录内容合并的覆盖层。相反,您实际上绕过了该卷的图像内容,并将其重新指向您的主机。
样本:
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
目录在图像中不为空,但您将其重新指向主机上的一个空目录。