容器文件从主机映射卷更改时未更新

我有以下docker-compose.yml:

version: '3' services: web: build: context: . dockerfile: ./.docker/node.dockerfile volumes: - D:\Proj\Web:/app ports: - '3000:3000' depends_on: - 'db' networks: - holder-network restart: on-failure tty: true db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql networks: - holder-network restart: always environment: MYSQL_ROOT_PASSWORD: P@ssw0rd MYSQL_DATABASE: holder_db MYSQL_USER: holder_usr MYSQL_PASSWORD: P@ssw0rd networks: holder-network: driver: bridge volumes: db_data: 

和node.dockerfile:

 FROM node:7.10 MAINTAINER Juliano Nunes RUN mkdir /var/www RUN npm install nodemon -g WORKDIR /var/www ADD . /var/www RUN npm install CMD nodemon 

我正在从主机更改D:\ Proj \ Web下的文件,但它不更新容器中的文件。 为什么?

我发现了错误。 我docker-compose.yml使用/app作为path, node.dockerfile使用/var/www

这是更新(工作)版本:

 version: '3' services: web: build: context: . dockerfile: ./.docker/node.dockerfile volumes: - D:\Proj\Web:/var/www ports: - '3000:3000' depends_on: - 'db' networks: - holder-network restart: on-failure tty: true db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql networks: - holder-network restart: always environment: MYSQL_ROOT_PASSWORD: P@ssw0rd MYSQL_DATABASE: holder_db MYSQL_USER: holder_usr MYSQL_PASSWORD: P@ssw0rd networks: holder-network: driver: bridge volumes: db_data: 

要在docker上运行的容器中映射主机卷,需要确保将驱动器共享到embedded式虚拟机中。 否则,该目录将从VM的文件系统挂载,该文件系统在该位置将是空的。 您需要进入Windows上的泊坞窗设置并将D驱动器添加到共享目录列表中。 在这里查看docker的文档: https : //docs.docker.com/docker-for-windows/#shared-drives