Docker compose装载空卷 预期行为

Docker compose装载空卷 预期行为,docker,docker-compose,virtualbox,windows-7-x64,boot2docker,Docker,Docker Compose,Virtualbox,Windows 7 X64,Boot2docker,docker compose up-d应正确装载卷 实际行为 突然之间(两天前它工作得很好,没有安装任何东西,也没有更新操作系统),卷不再被装载。没有看到任何错误消息,只有容器日志抱怨命令找不到文件(因为“空”卷覆盖了容器复制的文件) 如果我删除/service:/home/node/api卷,docker就会使用容器中的文件,一切正常 问询处 Docker版本18.03.0-ce,版本0520e24302(Docker toolbox/boot2docker/virtualbox 5.2.1

docker compose up-d
应正确装载卷

实际行为 突然之间(两天前它工作得很好,没有安装任何东西,也没有更新操作系统),卷不再被装载。没有看到任何错误消息,只有容器日志抱怨命令找不到文件(因为“空”卷覆盖了容器复制的文件)

如果我删除
/service:/home/node/api
卷,docker就会使用容器中的文件,一切正常

问询处
  • Docker版本18.03.0-ce,版本0520e24302(Docker toolbox/boot2docker/virtualbox 5.2.12)
  • docker compose版本1.20.1,内部版本5d8c71b2
  • Windows 7 x64
已经尝试从virtualbox中删除docker计算机并再次创建它,同时修剪所有卷/图像和容器。甚至重新安装Docker工具箱,但问题依然存在

一切都以管理员权限运行

更多信息
docker compose config
输出

services:
  api:
    build:
      context: C:\users\fede\documents\test\service
    container_name: api
    ports:
    - 3000:3000/tcp
    volumes:
    - /c/users/fede/documents/test/service:/home/node/api:rw
version: '3.0'

$docker inspect api
输出:

文件夹 为了加快调试速度,我简化了一个示例应用程序,您可以在这里看到:


我是docker的新手,但是如果有什么我可以提供的,以便在本地重新开始使用docker,请在评论中询问。但老实说,这种情况每天都在发生,没有对系统做任何改变。没有涉及反病毒。

作为将来的参考,我终于找到了这种情况“突然”发生的原因。它与不使用大写字母的卷的命令行和相对路径有关

注意到相同的路径,但显示方式不同吗?那是我缺乏经验的结果

第一个可以很好地工作,VM可以毫无问题地将工作目录映射到共享卷。我想这与
C:\Users\Fede
有大写字母有关,而第二条路径不支持大写字母

因此,执行
cd$HOME
会将我带到
~
(HOME)路径,如下所示:

现在,终端路径已正确设置为开始正确映射主机卷

$docker compose config

services:
  api:
    build:
      context: C:\Users\Fede\documents\test\service
    container_name: api
    ports:
    - 3000:3000/tcp
    volumes:
    - /c/Users/Fede/documents/test/service:/home/node/api:rw
version: '3.0'