【发布时间】:2020-12-01 10:27:47
【问题描述】:
我在尝试将卷安装到我的 docker 容器时遇到问题。
这是我的项目结构
cloudRun
distService/
index.js
Dockerfile
package.json // THIS IS THE package.json FOR THE DOCKER IMAGE
package.json // THIS IS MY MAIN PROJECT package.json
在我的主项目package.json 我有以下脚本:
"docker-run": "./scripts/docker/docker-run.sh",
"docker-inspect": "docker exec -ti hello-world sh" // THIS IS USED TO INSPECT THE RUNNING CONTAINER
docker-run.sh
// STOPS ALL CONTAINERS
// REMOVES ALL CONTAINERS
// REMOVES ALL IMAGES
// BUILDS A NEW IMAGE FROM SCRATCH
docker build --tag hello-world:latest ./cloudRun
// TRYING TO RUN THE CONTAINER WITH A MOUNTED /distService VOLUME
docker run --name hello-world -p 3000:3000 -v //distService:/distService hello-world:latest
这是Dockerfile:
FROM node:12-slim
WORKDIR /
COPY ./package.json ./package.json
RUN npm install
ENTRYPOINT npm start
一切正常。除了容器将/distService 视为一个空文件夹这一事实。
我知道这一点是因为当我打开一个新的终端窗口并运行时:
npm run docker-inspect
我可以进入文件夹和ls 他们。这就是我得到的:有一个distService 文件夹,但ls 命令返回为空。 PS:我在node_modules 上做了一个ls 只是为了表明它有效,而distService 确实是空的。
问题
当我通过-v //folder:/folder 时,源文件夹相对于什么?如何确定我选择了正确的文件夹?
环境:
Windows 10.
Docker for Windows installed
Docker Engine v19.03.13
更新
我运行容器并检查它:docker inspect <CONTAINER_ID> 以查看正在挂载的文件夹。但这并没有太大帮助。这是回来的:
"HostConfig": {
"Binds": [
"//distService/:/distService/"
],
// OTHER STUFF
"Mounts": [
{
"Type": "bind",
"Source": "/distService", // WHAT IS THIS PATH RELATIVE TO ?
"Destination": "/distService",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
【问题讨论】:
标签: docker dockerfile docker-volume docker-run