Docker撰写装载空卷

时间:2018-05-29 17:29:27

标签: docker docker-compose virtualbox windows-7-x64 boot2docker

预期行为

docker-compose up -d应正确装入卷

实际行为

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

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

信息

  • Docker版本18.03.0-ce,build 0520e24302(Docker toolbox / boot2docker / virtualbox 5.2.12)
  • docker-compose版本1.20.1,build 5d8c71b2
  • Windows 7 x64
  • Virtual box sharing folder.jpg

已经尝试从虚拟机中删除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,请在评论中提问。但老实说,这种情况从一天开始发生,而不对系统进行任何更改。没有反病毒。

1 个答案:

答案 0 :(得分:2)

为了将来的参考,我终于找到了这个开始发生的原因"突然"。它与命令行和不符合大写字母的卷的相对路径有关。

This

注意相同的路径,但显示不同?这是我缺乏经验的产物。

第一个工作正常,VM将工作目录映射到共享卷没有任何问题。我想这与C:\Users\Fede有大写字母有关,第二条路径并不尊重。

这样做cd $HOME将我带到~(主页)路径,如下所示:

enter image description here

现在正确设置终端路径以正确开始映射主机卷。

$ 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'
相关问题