Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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
Docker卷清除windows 10上容器中的文件夹_Docker_Docker Compose_Docker Volume - Fatal编程技术网

Docker卷清除windows 10上容器中的文件夹

Docker卷清除windows 10上容器中的文件夹,docker,docker-compose,docker-volume,Docker,Docker Compose,Docker Volume,我创建了一个带有nodejs服务器的简单docker FROM node:12.16.1-alpine WORKDIR /usr/src COPY ./app/package.json . RUN yarn COPY ./app ./app 这非常有效,服务正在运行 现在,我正在尝试使用docker compose运行docker,其中包含一个用于本地开发的卷: version: "3.4" services: web: image: my-node-app

我创建了一个带有nodejs服务器的简单docker

FROM node:12.16.1-alpine
WORKDIR /usr/src

COPY ./app/package.json .
RUN yarn

COPY ./app ./app
这非常有效,服务正在运行

现在,我正在尝试使用docker compose运行docker,其中包含一个用于本地开发的卷:

version: "3.4"
services:
    web:
        image: my-node-app
        volumes:
            - ./app:/usr/src/app
        ports:
            - "8080:8080"
        command: ["yarn", "start"]        
        build:
            context: .
            dockerfile: ./app/Dockerfile
这是我在主机中的文件夹结构:

服务在没有卷的情况下工作。添加卷时,/usr/src/app是空的(即使它已满,如文件夹结构所示)

检查docker容器时,我得到以下装载配置:

"Mounts": [
        {
            "Type": "bind",
            "Source": "/d/development/dockerNCo/app",
            "Destination": "/usr/src/app",
            "Mode": "rw",
            "RW": true,
            "Propagation": "rprivate"
        }
    ],
但是,通过vscode的shell浏览文件夹时,它仍然显示为空

此外,命令:
docker volume ls
显示一个空列表

我正在windows 10上运行docker 18.09.3


配置有什么问题吗?它应该如何工作?

将卷添加到您的服务将删除所有文件
/usr/src/app
,并从主机装载
/app
的内容。这也意味着在docker映像中运行
warn
生成的所有文件都将丢失,因为它们只存在于docker映像中。这是在docker中添加卷的预期行为,不是bug

        volumes:
            - ./app:/usr/src/app
  • 通常,对于非开发环境,您根本不需要卷
  • 如果要查看主机上的文件,需要从docker compose运行
    warn
    命令(可以使用入口点)

我实际上看到了节点模块,因为它们是在/usr/src文件夹中生成的。问题是-我在
/usr/src/app
文件夹中看不到文件,即使在
/app
主机中存在文件。这是
/d/development/dockerNCo/app
的正确路径吗?是的。我认为问题源于windows权限问题。配置似乎很好,我正在其他机器上使用它。我想docker无法在windows home版本中完全运行:(如果您在windows上运行此程序,则需要添加正确的路径。下面是描述如何执行此操作的链接,谢谢。我以前尝试过本文中所述的内容(我已经为此问题挣扎了一天)。它不工作。问题是-源中的路径是正确的。这似乎是权限问题。