docker – 与MongoDb和卷组成 – 似乎没有被挂载
我试图运行一个docker-compose
操作,该操作产生一个Redis
和MongoDb
实例,以及哪个(应该)通过volumes
规范向主机pc提供一个data-file
的MongoDb
实例。
我可以使用以下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
。
我可以连接到Redis
和MongoDb
,但是对一个执行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
。