gpt4 book ai didi

mongodb - 带有卷的 docker 中的 Mongo 数据库持久性

转载 作者:可可西里 更新时间:2023-11-01 09:19:05 24 4
gpt4 key购买 nike

我正在尝试创建一个 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

我试图只停止容器而不是 compose down,然后数据仍然存在......这表明我仍在使用内部存储。如果是这种情况,如何让它使用外部卷?

我使用的是 mac 和 docker 版本 18.06.1-ce-mac73。

最佳答案

我已经在我的本地系统中复制了同样的问题并尝试解决它,我已经根据文档将 docker-compose 卷中的目标路径从“target:/data”修改为“target:/data/db”在 https://hub.docker.com/_/mongo/ 中给出它有效。使用更新的 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

已测试并有效!!!

关于mongodb - 带有卷的 docker 中的 Mongo 数据库持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52302770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com