Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用dockerfile将作为容器上的卷共享的文件从主机复制到新的docker映像?_Docker_Dockerfile_Docker Volume_Synology - Fatal编程技术网

如何使用dockerfile将作为容器上的卷共享的文件从主机复制到新的docker映像?

如何使用dockerfile将作为容器上的卷共享的文件从主机复制到新的docker映像?,docker,dockerfile,docker-volume,synology,Docker,Dockerfile,Docker Volume,Synology,如何使用dockerfile在创建时将文件从主机复制到映像,并在创建容器时使主机可以使用这些文件?我在docker文件中的1)VOLUME=[..]之间迷失了方向2)--运行命令中的VOLUME3)docker VOLUME create 我尝试创建dockerfile来将文件复制到图像中。虽然如果我用-v选项运行容器,容器上的目标似乎被清除了??例如: FROM node:latest WORKDIR /usr/src/myapp COPY package*.json ./ RUN npm i

如何使用dockerfile在创建时将文件从主机复制到映像,并在创建容器时使主机可以使用这些文件?我在docker文件中的1)VOLUME=[..]之间迷失了方向2)--运行命令中的VOLUME3)docker VOLUME create

我尝试创建dockerfile来将文件复制到图像中。虽然如果我用-v选项运行容器,容器上的目标似乎被清除了??例如:

FROM node:latest
WORKDIR /usr/src/myapp
COPY package*.json ./
RUN npm install
COPY index.js /usr/src/myapp/index.js
EXPOSE 8080
CMD [ "node", "/usr/src/myapp/index.js" ]
在没有音量的情况下运行它效果很好

docker run -p 8080:8080 --name Test test:latest
但是,对于卷,容器上的目标目录似乎已清除(错误:找不到模块“/usr/src/myapp/index.js”)


我知道我的备选方案是在主机上创建一个命名卷,并将其作为卷包含在Dockerfile中。但这不是我的偏好,因为它不允许我选择主机上的卷位置(Synology NAS没有为我提供将默认位置从/volume1/@docker/volumes更改为我可以共享或装载的位置的解决方案)

是,它似乎已清除,因为将
/mynasvolume1/test
装载到
/usr/src/myapp
将只显示
/mynasvolume1/test
中的文件,并覆盖
复制到
Dockerfile
中的文件。不清楚您试图实现什么,但请尝试装载到特定目录,如:
/mynasvolume1/test:/usr/src/myapp/test

您已经将应用程序源代码复制到映像中;完成后,您不需要在那里单独装入卷。运行映像所需的所有内容都已包含在映像中。
docker run -p 8080:8080 -v /mynasvolume1/test:/usr/src/myapp --name Test test:latest