docker-compose up -d
应正确装入卷
突然(它在两天前完美运行,没有安装任何东西也没有更新操作系统),卷不再被挂载。看不到任何错误消息,只有容器日志抱怨该命令找不到该文件(因为“空”卷覆盖了容器的复制文件)。
如果删除./service:/home/node/api
卷,则docker会使用容器中的文件,一切正常。
已经尝试从虚拟机中删除docker机器并再次创建它,修剪所有卷/图像和容器。甚至重新安装Docker Toolbox,但问题仍然存在。
所有内容都以管理员权限运行。
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,请在评论中提问。但老实说,这种情况从一天开始发生,而不对系统进行任何更改。没有反病毒。
答案 0 :(得分:2)
为了将来的参考,我终于找到了这个开始发生的原因"突然"。它与命令行和不符合大写字母的卷的相对路径有关。
注意相同的路径,但显示不同?这是我缺乏经验的产物。
第一个工作正常,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'