我试图运行一个docker-compose
操作,该操作产生一个Redis
和MongoDb
实例,并且(应该)为MongoDb
实例提供一个来自主机pc的data-file
通过volumes
规范。
我可以使用以下docker-compose.yml
成功启动容器:
redis:
image: redis
ports:
- "6379:6379"
mongo:
image: mongo:latest
volumes:
- ./data/db:/data/db
ports:
- "27017:27017"
command: --rest
假设它应该' mount'目录data/db
data
目录位于docker-compose.exe
文件旁边。
我可以连接到Redis
和MongoDb
,但对执行count()
的集合的简单查询会返回0
(应该包含数据)。这让我相信volumes
属性的加载不起作用。
如果我检查容器上的文件结构,我就不会看到/data
文件夹... 我在这里遗漏了什么......感谢任何领导! < / p>
答案 0 :(得分:1)
您展示的是boot2docker的文件系统,这是基于TinyCore的Linux主机,它运行docker守护程序。
它不是:
./data/db
是(it should be right beside the docker-compose.yml
file)/data/db
所在的位置:它应该安装在mongo容器中只有当您的文件位于C:\users\...
或/Users/...
时,这才有效,这是VirtualBox在Linux VM中安装的唯一主机文件夹。
要检查装载是否已发生,请执行docker exec mongo bash
,在该容器中打开bash并检查ls /data
。