Docker 组成挂载空卷
Docker compose mounting empty volumes
预期行为
docker-compose up -d
应该正确安装卷
实际行为
突然(两天前它运行良好,既没有安装任何东西也没有更新 OS),卷不再被挂载。看不到任何错误消息,只有容器日志抱怨该命令找不到文件(因为 "empty" 卷覆盖了容器的复制文件)。
如果我删除 ./service:/home/node/api
卷,然后 docker 使用容器中的文件,一切正常。
信息
- Docker 版本 18.03.0-ce,构建 0520e24302(Docker 工具箱/boot2docker / virtualbox 5.2.12)
- docker-compose version 1.20.1, build 5d8c71b2
- Windows 7 x64
- Virtual box sharing folder.jpg
已经尝试从 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
输出:https://pastebin.com/1zQ3vjFi
文件
为了加快调试速度,我简化了一个示例应用程序,您可以在此处查看:https://github.com/Frondor/simple-node-app
我是 docker 的新手,但如果我可以提供其他东西以便再次在本地开始使用 docker,请在评论中提问。但老实说,这种情况每天都在发生,而无需对系统进行任何更改。不涉及反病毒。
为了将来参考,我终于找到了开始发生这种情况的原因 "suddenly"。它与不支持大写字母的卷的命令行和相对路径有关。
注意相同的路径,但显示不同?那是我经验不足的产物。
第一个完美运行,VM 将工作目录映射到共享卷没有任何问题。我想这与 C:\Users\Fede
有大写字母有关,第二条路径不支持。
这样做 cd $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'
预期行为
docker-compose up -d
应该正确安装卷
实际行为
突然(两天前它运行良好,既没有安装任何东西也没有更新 OS),卷不再被挂载。看不到任何错误消息,只有容器日志抱怨该命令找不到文件(因为 "empty" 卷覆盖了容器的复制文件)。
如果我删除 ./service:/home/node/api
卷,然后 docker 使用容器中的文件,一切正常。
信息
- Docker 版本 18.03.0-ce,构建 0520e24302(Docker 工具箱/boot2docker / virtualbox 5.2.12)
- docker-compose version 1.20.1, build 5d8c71b2
- Windows 7 x64
- Virtual box sharing folder.jpg
已经尝试从 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
输出:https://pastebin.com/1zQ3vjFi
文件
为了加快调试速度,我简化了一个示例应用程序,您可以在此处查看:https://github.com/Frondor/simple-node-app
我是 docker 的新手,但如果我可以提供其他东西以便再次在本地开始使用 docker,请在评论中提问。但老实说,这种情况每天都在发生,而无需对系统进行任何更改。不涉及反病毒。
为了将来参考,我终于找到了开始发生这种情况的原因 "suddenly"。它与不支持大写字母的卷的命令行和相对路径有关。
注意相同的路径,但显示不同?那是我经验不足的产物。
第一个完美运行,VM 将工作目录映射到共享卷没有任何问题。我想这与 C:\Users\Fede
有大写字母有关,第二条路径不支持。
这样做 cd $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'