我正在尝试创建一个mongo数据库容器,但无法使数据保持不变。这是我的docker-compose.yml
version: "3.2"
services:
mongodb:
image: mongo:2.4
command: --smallfiles
ports:
- 27017:27017
volumes:
- type: volume
source: mongodb_data_volume
target: /data
volumes:
mongodb_data_volume:
external: true
在docker-compose和exec -it进入mongodb之后,我创建了一个新的空数据库,然后列出了已安装卷的内容:
root@cf8330019f91:/data/db# ls
_tmp admin.1 journal local.ns
admin.0 admin.ns local.0 mongod.lock
但后来我进行了下降和上升循环,并将相同的安装量重置为初始值。
root@d18bda47d0b3:/data/db# ls
_tmp journal local.0 local.ns mongod.lock
我试图只停止容器而不是组合,然后数据保持不变......这表明我仍在使用内部存储。如果是这种情况,我该如何使用外部卷?
我正在使用mac和docker版本18.06.1-ce-mac73。
我在我的本地系统中复制了同样的问题并尝试解决它,我已根据https://hub.docker.com/_/mongo/中给出的文档将docker-compose中的目标路径从“target:/ data”修改为“target:/ data / db”它的工作原理。使用更新的docker-compose文件,如下所示
version: "3.2"
services:
mongodb:
image: mongo:2.4
command: --smallfiles
ports:
- 27017:27017
volumes:
- type: volume
source: mongodb_data_volume
target: /data/db
volumes:
mongodb_data_volume:
external: true
经过测试和工作!!!