docker – 与MongoDb和卷组成 – 似乎没有被挂载

我试图运行一个docker-compose操作,该操作产生一个RedisMongoDb实例,以及哪个(应该)通过volumes规范向主机pc提供一个data-fileMongoDb实例。

我可以使用以下docker-compose.yml成功启动容器:

 redis: image: redis ports: - "6379:6379" mongo: image: mongo:latest volumes: - ./data/db:/data/db ports: - "27017:27017" command: --rest 

假设它应该挂载data目录在docker-compose.exe文件旁边的目录data/db

在这里输入图像说明

我可以连接到RedisMongoDb ,但是对一个执行count()的集合的简单查询返回0 (它应该包含数据)。 这导致我相信volumes属性的安装不起作用。

如果我检查容器上的文件结构,我没有看到一个/data文件夹… 我在这里错过了什么…感谢任何领导!

在这里输入图像说明

你所展示的是boot2docker的文件系统,它是运行docker守护进程的基于TinyCore的Linux主机。
不是这样:

  • 你的本地./data/db在哪里( 它应该在docker-compose.yml文件旁边 )
  • 你的挂载/data/db是:它应该被安装在mongo容器中

只有当你的文件位于C:\users\.../Users/... ,这是Virtual Machine在Linux VM中挂载的唯一主机文件夹时,才会起作用。

要检查挂载是否发生,请执行docker exec mongo bash ,在该容器中打开bash并检查ls /data