我正在尝试运行 docker-compose
操作,该操作会生成 Redis
和 MongoDb
实例,并且(应该)提供通过 volumes
规范从主机 PC 获取带有数据文件
的 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/db
,其中data
目录位于docker-compose.exe
文件旁边.
我可以连接到 Redis
和 MongoDb
,但对执行 count()
的集合进行简单查询会返回 0
(应包含数据)。这让我相信 volumes
属性的安装不起作用。
如果我检查容器上的文件结构,我没有看到 /data
文件夹... 我在这里遗漏了什么吗...感谢您的指导!
最佳答案
您显示的是 boot2docker 的文件系统,TinyCore运行 docker 守护进程的基于 Linux 主机。
它不是:
- 本地
./data/db
位于 ( it should be right beside thedocker-compose.yml
file ) - 你安装的
/data/db
在哪里:它应该安装在mongo容器中
只有当您的文件位于 C:\users\...
或 /Users/...
(这是唯一安装的主机文件夹)时,这才有效通过 Linux VM 中的 VirtualBox。
要检查挂载是否已发生,请执行docker exec mongo bash
,在该容器中打开 bash 并检查ls/data
。
关于mongodb - docker-compose 与 MongoDb 和卷 - 似乎没有安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34979866/