关于docker中mongodb映射本地数据存储路径实现数据持久化无效问题

关于docker中mongodb映射本地数据存储路径实现数据持久化无效问题

问题描述:

老师,我的mongodb映射本地数据存储路径实现数据持久化无效

相关截图:

这是我本地mongodb数据库数据存储的位置:

https://img1.sycdn.imooc.com//climg/6211155e09df174f14320296.jpg

这是本地数据库中的数据库列表:

https://img1.sycdn.imooc.com//climg/62111586093815e314720538.jpg

这是启动docker中mongodb的命令:

https://img1.sycdn.imooc.com//climg/621115b80920c5f914800550.jpg

这是启动后的列表:

https://img1.sycdn.imooc.com//climg/6211160a091021c414780374.jpg

这是docker里面mongodb的数据库列表:

https://img1.sycdn.imooc.com//climg/621116a00968c73314820286.jpg

https://img1.sycdn.imooc.com//climg/621116bd09124a6214701150.jpg

https://img1.sycdn.imooc.com//climg/621116dc09d2687714700518.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
张轩 2022-02-20 09:37:50

同学你好 建议以下排查措施

1 查看 logs 是否有一些错误或者警告信息

docker logs container-id

2 查看默认数据是否真正在 /usr/local/var/mongodb, 默认启动的 mongo 是在 /data/db 下的,只有启动时候指定了位置才能是在这个位置。

3 测试一个其他位置是否可以实现持久化, 使用一个本地目录启动一次

docker run -d --name db \
  -v ~/mongo/data:/data/db \ 
  -p 27017:27017 \
  mongo

进 shell  中创建一些数据,然后关闭,再重启,看看数据是否存在,验证持久化是否可以使用。

  • 提问者 慕村8544442 #1

    老手,经测试直接指定本地目录启动是可以完成持久化的,但是把目录指向我当前mongodb存储的位置就是不行,我的mongo是指定了数据存储的目录的,没有用默认的/data/db,下面是我的mongodb.conf文件的配置信息:

    https://img1.sycdn.imooc.com//climg/6211d34109afd9e614540416.jpg

    mongdb配置文件存放目录:

    https://img1.sycdn.imooc.com//climg/6211d3680988945d12980500.jpg

    本地启动mongodb的命令:

    https://img1.sycdn.imooc.com//climg/6211d3a609a0676116240188.jpg

    老师,有没有可能是这个文件夹的权限问题导致的?docker没有权限读取这个文件的数据?是否我需要把Mac的终端切换到root用户?

    2022-02-20 13:39:37
  • 提问者 慕村8544442 #2

    抱歉哈,老师,打字太急没注意看,把老师打成老手了,回复好像不能修改,望老师见谅,囧!!!

    2022-02-20 13:41:41
  • 张轩 回复 提问者 慕村8544442 #3

    没关系 同学你好 有可能是权限问题,可以尝试一下修改权限。

    2022-02-21 09:33:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师