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

How to copy files from host to a new docker image using dockerfile, that are shared as a volume on the container?

如何在创建时使用 docker 文件将文件从我的主机复制到映像,并在创建容器时使这些文件可供主机使用?我迷失在 1) Dockerfile 中的 VOLUME=[..] 2) 运行 命令中的 --volume 3 ) docker 卷创建

我尝试创建一个 docker 文件以将文件复制到图像中。尽管如果我 运行 带有 -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”)

docker run -p 8080:8080 -v /mynasvolume1/test:/usr/src/myapp --name Test test:latest

我知道我的替代方法是在主机上创建一个命名卷并将其作为 VOLUME 包含在 Dockerfile 中。这不是我的偏好,因为它不允许我 select 主机上的卷位置(Synology NAS 没有给我更改默认位置的解决方案 /volume1/@docker/volumes到我可以共享或挂载的位置)

是的,它似乎已清除,因为将 /mynasvolume1/test 挂载到 /usr/src/myapp 将仅显示来自 /mynasvolume1/test 的文件并覆盖您 COPYDockerfile 中编辑的文件].目前尚不清楚您要实现的目标,但请尝试安装到特定目录,例如:/mynasvolume1/test:/usr/src/myapp/test