Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker与MongoDb和卷组合-不';他似乎没有上马_Mongodb_Docker_Docker Compose_Volumes - Fatal编程技术网

docker与MongoDb和卷组合-不';他似乎没有上马

docker与MongoDb和卷组合-不';他似乎没有上马,mongodb,docker,docker-compose,volumes,Mongodb,Docker,Docker Compose,Volumes,我正在尝试运行adocker 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: -

我正在尝试运行a
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
dir位于
docker compose.exe
文件旁边

我可以连接到
Redis
MongoDb
,但对集合执行
count()
的简单查询将返回
0
(其中应包含数据)。这让我相信
属性的装载不起作用

如果我检查容器上的文件结构,我不会看到
/data
文件夹我是不是错过了什么。。。谢谢你的任何线索


您显示的是基于Linux主机的文件系统,该主机运行docker守护程序。
它不是:

  • 您的本地
    /data/db
    是()
  • 安装的
    /data/db
    位置:应安装在mongo容器中
只有当您的文件位于
C:\users\…
/users/…
中时,这才有效,这是VirtualBox在Linux虚拟机中装载的唯一主机文件夹


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

ok cool,我可以通过
Kitematic
看到正在装载卷,但它没有指向我指定的本地目录。它需要位于
c:\users
目录中这一事实解决了这个问题。我把所有的东西都移到了那里,现在它装上了正确的音量。太糟糕了,数据无法加载,这意味着容器无法启动。。。(文本文件忙:“/data/db/journal/j._0”)@Ropstah请注意,您可以在boot2docker中装入其他文件夹(:另请参阅同一页上的其他答案),感谢您的清理。我想我看到了错误,它与
/data/db
文件夹上的权限有关。不知何故,容器无法写入这些文件。。。我将把你的答案标记为答案,但希望你能告诉我应该在哪里设置这些权限…@Ropstah作为一个例子:,或者,或者,谢谢你的链接建议。然而,我并不确定我需要做什么来修复它。由于权限限制,我无法启动容器。我唯一能想象的是在主机上执行一些
chown
操作(哪个是Docker对吗?不是运行Docker VM的本地pc?),其中
/data/db
文件夹用于
mongodb:mongodb
用户/组或其他什么?