【发布时间】:2020-09-29 18:42:14
【问题描述】:
我正在尝试创建一个在 docker 容器中运行的 mongodb 服务。我的目的是将容器内的所有数据保存在主机中。为此,我有一个docker-compose.yml 文件,其内容是:
version: '3.2'
services:
mongodb:
image: mongo:latest
environment:
MONGO_INITDB_ROOT_USERNAME: myrootmongousername
MONGO_INITDB_ROOT_PASSWORD: myrootmongopassword
MONGO_INITDB_DATABASE: dbnameiwanttocreate
ports:
- '27010:27017'
volumes:
- 'mongodata:/data'
如您所见,我的volumes 部分声明将容器内/data 文件夹的所有内容放入主机中的mongodata 文件夹中。我创建了一个名为 mongodata 的文件夹,与我的 docker-compose.yml 文件高度相同。
myprojectfolder
|__docker-compose.yml
|__mongodata
当我执行docker-compose up 时,它会创建一个容器,我可以连接等等。但是,我的mongodata 文件夹完全是空的。这是不可能的,因为如果我进入 docker 容器 (docker exec -it <container-id> bash) 并探索 /data 文件夹,它根本不是空的。
我的错误是什么?
谢谢!
【问题讨论】:
-
您需要使用主机文件夹的绝对路径
/users/xxxx/mongodata:/data而不是mongodata:/data。在您当前的配置中,您使用的是 docker 管理的命名卷。见docker-compose volume document -
...或相对路径
./mongodata。 -
谢谢戴,大卫迷宫。我两个都试过了。不工作,仍然是空文件夹。
-
@Carlos 你有解决办法吗?我有同样的问题,无法解决。如果您能与我们分享解决方案,我将不胜感激。提前致谢!
标签: mongodb docker docker-compose docker-volume