You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署MongoDB未显式配置卷时,数据具体存储在什么位置?

问题解答

1. Docker规则没有变更,是记忆的适用场景存在偏差

你记忆中「未配置volume容器数据会丢失」的规则成立的前提是容器被删除重建,而不是容器重启:

  • 普通的容器重启(docker restart、docker-compose stop后再执行docker-compose up)不会销毁容器的可写层,写入的数据本身就会保留
  • 额外的原因:官方mongo镜像的Dockerfile中默认声明了VOLUME /data/db,就算你没有在compose配置中手动写卷挂载规则,Docker启动容器时也会自动为/data/db目录创建匿名卷挂载,只要你没有主动删除卷,就算容器被删除重建,只要匿名卷还在,重新启动时数据也会保留(docker-compose默认不会主动删除匿名卷,只有执行docker-compose down -v或者手动清理卷才会删除)

2. 你的MongoDB数据存储位置

数据存在Docker自动创建的匿名卷中,你可以通过以下步骤查看具体路径:

  • 先找到运行中的mongo容器ID/名称:sudo docker ps | grep mongo
  • 执行命令查看挂载信息:sudo docker inspect 容器ID/名称 | grep Mounts -A 20
  • 输出中Source字段对应的路径就是宿主机上的实际存储路径,默认位于/var/lib/docker/volumes/[随机生成的卷ID]/_data下

你也可以直接执行sudo docker volume ls查看所有匿名卷,找到对应mongo服务的卷后通过sudo docker volume inspect 卷名查看存储路径。


内容的提问来源于stack exchange,提问作者Dims

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 04:45:03