七千二百袋水泥
七千二百袋水泥
Published on 2025-06-08 / 0 Visits

超详细教程:手把手教你通过Docker Compose在家庭NAS服务器上部署MongoDB数据库完整指南

MongoDB 是一款基于文档存储的开源分布式数据库系统,属于 NoSQL(非关系型数据库)范畴。该数据库采用灵活的 JSON 格式(实际存储为 BSON,即 Binary JSON)来存储数据,从而突破了传统关系型数据库(例如 MySQL)中固定表结构的限制。因此,MongoDB 特别适合处理非结构化或半结构化数据,例如日志记录、用户行为数据以及社交网络内容等应用场景。

Image

一、使用Docker Compose安装MongoDB

通过 Docker Compose 实现快速部署,以下是完整的配置模板:

services:  
  mongo:  
    image: mongo:latest  
    container_name: mongo  
    ports:  
      - 27017:27017  
    volumes:  
      - /vol1/1000/docker/mongo:/data/db  
    environment:  
      - MONGO_INITDB_ROOT_USERNAME=root  
      - MONGO_INITDB_ROOT_PASSWORD=password  
    restart: always

关键参数解析

  • MONGO_INITDB_ROOT_USERNAME(可选环境变量):用于设置超级管理员的用户名

  • MONGO_INITDB_ROOT_PASSWORD(可选环境变量):用于设置超级管理员的密码

注意事项 MongoDB 5.0及以上版本需要CPU支持AVX指令集,如果您的硬件不支持,请选择较低版本的MongoDB镜像。

Image

二、MongoDB基础操作与使用指南

部署完成后,可通过容器终端进行数据库管理:

Image

操作提示 不同版本的MongoDB命令可能存在差异(括号内为旧版命令),启动交互环境使用:

mongosh  # 或旧版命令 mongo

Image

权限认证流程 若已设置管理员账户,需先切换至admin数据库完成认证:

use admin  
db.auth('root','password')

Image

数据库管理操作

  1. 创建/切换数据库:

    use mytest  # 自动创建或切换数据库

    Image

  2. 显示数据库列表(空数据库不显示):

    show dbs

    Image

  3. 插入测试数据:

    db.user.insert({name: "Test"})

    Image

  4. 验证数据插入结果:

    show dbs  # 此时新数据库可见

    Image

多用户权限配置

  1. 创建专属用户并授权:

    use admin
    db.createUser({  
      user: 'david',  
      pwd: '123456',  
      roles: [  
        { role: 'readWrite', db: 'mytest' }  
      ]  
    })
  2. 验证用户权限:

    db.auth('david', '123456')

    Image

  3. 退出交互环境:

    exit

    Image

三、MongoDB在NAS上的部署总结与评价

本教程详细演示了在NAS环境中部署MongoDB的核心流程。实际应用场景中,该数据库通常作为其他应用系统的存储后端,重点在于初始阶段正确配置管理员账户。

综合评价体系

  • 综合推荐指数:⭐⭐⭐(适合有特定数据存储需求的场景)

  • 使用体验评价:⭐⭐⭐(需配合应用程序联动使用)

  • 部署难度评级:⭐⭐(操作流程简洁高效)