Docker 卷实现 MongoDB 数据持久化:从零搭建 Node.js + MongoDB 演示环境
引言默认情况下MongoDB 容器重启或重建后所有数据库数据都会丢失。核心目标是让数据库数据保留在宿主机不受容器生命周期影响。本节课将基于一个简单的 Node.js MongoDB 应用实操演示如何使用 Docker 卷Volume实现数据持久化。核心内容Node.js MongoDB 演示环境搭建环境组成演示使用 Node.js MongoDB Mongo Express。MongoDB 提供数据库服务Mongo Express 提供可视化 Web 管理界面全部通过 Docker Compose 编排启动。应用启动步骤# 进入应用目录 cd app # 安装依赖 npm install # 启动 Node 应用监听 3000 端口 node server.js # 输出确认app listening on port 3000!数据库准备在 Mongo Express 中创建自定义数据库并创建 users 集合。Node 应用通过环境变量匹配数据库和集合名称。Docker Compose 配置 Docker 命名卷核心配置步骤在 Docker Compose 根层级定义全局卷指定驱动为 local本地存储由 Docker 管理。在 MongoDB 服务中将宿主机命名卷绑定到容器内 MongoDB 默认数据存储路径。完整配置示例version: 3 services: mongodb: image: mongo ports: - 27017:27017 environment: - MONGO_INITDB_ROOT_USERNAMEadmin - MONGO_INITDB_ROOT_PASSWORDpassword volumes: - mongo-data:/data/db mongo-express: image: mongo-express ports: - 8081:8081 restart: always environment: - ME_CONFIG_MONGODB_ADMINUSERNAMEadmin - ME_CONFIG_MONGODB_ADMINPASSWORDpassword - ME_CONFIG_MONGODB_SERVERmongodb volumes: mongo-data: driver: local容器内路径说明容器内的绑定路径必须匹配数据库官方默认存储路径否则无法实现持久化。MongoDB 默认路径为/data/dbMySQL、PostgreSQL 等其他数据库都有各自的默认数据路径需要查询官方文档确认。Docker 卷工作原理容器内/data/db目录的所有数据会同步复制到宿主机的 Docker 卷mongo-data中。容器删除重建后Docker 会自动将宿主机卷mongo-data中的数据重新同步到新容器的/data/db目录实现数据保留。宿主机层与容器层的关系宿主机层mongo-data卷持久存储所有数据库文件。容器层/data/db目录启动时从宿主机卷同步数据修改实时反向同步回宿主机。Docker 卷数据持久化验证验证流程修改应用数据确认数据写入数据库。执行docker compose down删除所有容器。执行docker compose up重新创建全新容器。打开 Mongo Express 查看原数据库、集合、数据全部保留验证持久化生效。不同操作系统的 Docker 卷存储路径操作系统默认存储路径WindowsC:\ProgramData\docker\volumesLinux/var/lib/docker/volumesMac/var/lib/docker/volumesDocker for Mac 需要特殊方式访问每个命名卷都拥有独立的唯一哈希目录数据存储在卷目录的/_data路径下。Docker Compose 创建的命名卷命名规则{项目名}_{自定义卷名}前缀会自动添加项目名称。Mac 访问 Docker 卷的特殊方法Docker for Mac 将 Docker 运行在虚拟机中宿主机默认无/var/lib/docker目录需要执行命令进入虚拟机 Shell 查看bashdocker run -it --privileged --pidhost debian nsenter -t 1 -m -u -n -i sh命名卷 vs 匿名卷类型说明命名卷用户自定义明确名称方便引用和管理生产环境推荐使用匿名卷没有用户定义名称Docker 自动生成随机唯一 ID 作为名称功能和使用方式与命名卷完全一致总结本节课通过 Node.js MongoDB 演示环境系统讲解了 Docker 卷实现数据持久化的完整流程背景痛点MongoDB 容器默认不持久化数据重启后数据全部丢失。解决方案在 Docker Compose 中定义命名卷volumes根层级绑定到 MongoDB 容器内的/data/db路径。工作原理容器内/data/db与宿主机命名卷双向同步容器删除后数据仍保留在宿主机重建后自动恢复。验证方法写入数据 → 删除容器 → 重建容器 → 数据完整保留。存储位置Windows 为C:\ProgramData\docker\volumesLinux/Mac 为/var/lib/docker/volumesMac 需要进入虚拟机访问。

相关新闻

C++从零构建3D沙盒游戏核心框架:OpenGL渲染与区块管理实战

C++从零构建3D沙盒游戏核心框架:OpenGL渲染与区块管理实战

1. 项目缘起:从“复制”到“理解”的游戏开发之旅最近在社区里,看到不少朋友在搜索“我的世界 免费代码”、“迷你世界 可复制代码”这样的关键词,尤其是带着“C”这个标签。我完全理解这种心情——当你对《我的世界》(Minecraft&…

2026/8/13 19:55:28 阅读更多 →
Python反斜杠全解析:转义字符、路径处理与正则表达式避坑指南

Python反斜杠全解析:转义字符、路径处理与正则表达式避坑指南

1. 从一次“诡异”的路径错误说起那天,一个刚学Python没多久的朋友发来一段代码截图,问我为什么他的程序死活打不开文件。代码很简单,就是想在Windows上读取一个叫data\test.txt的文件。他写的路径是"C:\Users\name\data\test.txt"…

2026/8/13 17:01:40 阅读更多 →
Python开发中那些容易忽略的代码规范

Python开发中那些容易忽略的代码规范

你最后一次因为代码规范被同事吐槽,是什么时候?不是因为缩进用了四个空格还是两个空格,也不是因为变量命名用了拼音,而是那些看起来无关紧要、实际上能引爆生产事故的隐性规则。Python 的 PEP 8 只是入门,真正容易被忽…

2026/8/12 10:19:20 阅读更多 →

最新新闻

ComfyUI-WanVideoWrapper终极指南:3步轻松实现专业级AI视频生成

ComfyUI-WanVideoWrapper终极指南:3步轻松实现专业级AI视频生成

ComfyUI-WanVideoWrapper终极指南:3步轻松实现专业级AI视频生成 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 想要在ComfyUI中轻松玩转WanVideo系列模型吗?ComfyUI-Wan…

2026/8/13 20:20:01 阅读更多 →
三分钟掌握gSwitch:让你的MacBook Pro续航翻倍终极指南

三分钟掌握gSwitch:让你的MacBook Pro续航翻倍终极指南

三分钟掌握gSwitch:让你的MacBook Pro续航翻倍终极指南 【免费下载链接】gSwitch macOS menu bar app that allows control over the gpu on dual gpu macbooks 项目地址: https://gitcode.com/gh_mirrors/gs/gSwitch 还在为MacBook Pro电池续航焦虑吗&#…

2026/8/13 20:20:01 阅读更多 →
如何快速配置LNReader插件系统:打造个性化轻小说阅读体验的完整指南

如何快速配置LNReader插件系统:打造个性化轻小说阅读体验的完整指南

如何快速配置LNReader插件系统:打造个性化轻小说阅读体验的完整指南 【免费下载链接】lnreader Light novel reader for Android. 项目地址: https://gitcode.com/gh_mirrors/ln/lnreader LNReader是一款专为Android设计的轻小说阅读应用,其强大的…

2026/8/13 20:20:01 阅读更多 →
Unmanic入门指南:5分钟搭建你的智能媒体库管家

Unmanic入门指南:5分钟搭建你的智能媒体库管家

Unmanic入门指南:5分钟搭建你的智能媒体库管家 【免费下载链接】unmanic Unmanic - Library Optimiser 项目地址: https://gitcode.com/gh_mirrors/un/unmanic 你是否曾为杂乱无章的媒体库而烦恼?电影、剧集、动漫文件散落各处,格式不…

2026/8/13 20:20:01 阅读更多 →
Boogu-Image-0.1-Turbo-8bit:如何在Apple Silicon上实现12.5GB内存的高效图像生成

Boogu-Image-0.1-Turbo-8bit:如何在Apple Silicon上实现12.5GB内存的高效图像生成

Boogu-Image-0.1-Turbo-8bit:如何在Apple Silicon上实现12.5GB内存的高效图像生成 【免费下载链接】Boogu-Image-0.1-Turbo-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Boogu-Image-0.1-Turbo-8bit 当AI图像生成模型动辄需要数十GB显…

2026/8/13 20:20:01 阅读更多 →
如何快速配置Hermes WebUI与Agent无缝连接:新手终极指南

如何快速配置Hermes WebUI与Agent无缝连接:新手终极指南

如何快速配置Hermes WebUI与Agent无缝连接:新手终极指南 【免费下载链接】hermes-webui Hermes WebUI: The best way to use Hermes Agent from the web or from your phone! 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui 你是否想要通过…

2026/8/13 20:19:01 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →