【发布时间】:2018-10-19 17:06:37
【问题描述】:
我是 Docker 的新手,我用这个 Dockerfile 创建了一个镜像:
FROM node:8.12.0
LABEL version="1.0"
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "index.js"]
我运行图像并且它可以工作。但是,如果我在更新主机目录中的 index.js 时使用 WORKDIR 运行图像映射主机目录,则此更新不会传播到 WORKDIR。
我用这个命令运行镜像:
docker run --name basketmetrics -v /home/josecarlos/Workspace/nodejs/basketmetrics2:/usr/src/app -p 8080:8080 -d basketmetrics2/node-app:1.0
这是我的主机目录 /home/josecarlos/Workspace/nodejs/basketmetrics2
这是容器/usr/src/app 中的目标目录。如果我检查容器,我可以看到主机目录映射到 WORKDIR
我做错了什么?
更新一:
我已停止容器并修改主机目录中的文件 index.js。如果我再次运行图像,那么我可以看到内容更新了!!!
为什么我的内容没有即时更新?
【问题讨论】:
-
"这是容器中的目标目录 /usr/src/app。"有什么遗漏吗?
-
不,容器中定义WORKDIR的目录是/usr/src/app
-
我的意思是在“这是我的主机目录/home/josecarlos/Workspace/nodejs/basketmetrics2”下面,有一个截图,但是在“这是容器中的目标目录/usr/src /app" 实际上什么都没有。
-
起来,对不起!!!稍微往下一点,您可以从映射中看到屏幕截图。
-
下面给出的答案可能是它,但我真的会检查容器内的
docker exec -it basketmetrics bash和cat/vim,以确保它不是你的浏览器缓存,这是在愚弄你。
标签: docker docker-volume