Docker 部署 MongoDB
2026/7/22 10:01:24 网站建设 项目流程

1.拉取 MongoDB 镜像

sudo docker pull mongo:6.0

2.创建并启动 MongoDB 容器(带持久化 + 密码认证)

# 1.创建并启动 MongoDB 容器(带持久化 + 密码认证)

# 创建存放Mongo数据的文件夹

mkdir -p ~/mongo-data

# 2. 运行容器(完整可复制命令)

sudo docker run -d \

--name mongodb \

--restart always \

-p 27017:27017 \

-v ~/mongo-data:/data/db \

-e MONGO_INITDB_ROOT_USERNAME=admin \

-e MONGO_INITDB_ROOT_PASSWORD=123456 \

mongo:6.0

# 参数说明:

  • -d:后台守护运行
  • --name mongodb:容器命名,方便后续操作
  • --restart always:开机 / 容器异常自动重启
  • -p 27017:27017:端口映射,本地 27017 映射容器 27017
  • -v ~/mongo-data:/data/db:数据挂载持久化
  • MONGO_INITDB_ROOT_USERNAME/PASSWORD:超级管理员账号密码

3.验证容器是否启动成功

# 查看运行中的容器

sudo docker ps

# 输出列表里出现mongodb代表启动正常。

4.进入 MongoDB 客户端操作

# 1.安装本地客户端

# 步骤 1:导入 MongoDB 官方 GPG 密钥

curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-archive-keyring.gpg

# 步骤 2:添加 MongoDB 官方源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mongodb-archive-keyring.gpg] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

# 步骤 3:更新软件源缓存并安装

sudo apt update

sudo apt install -y mongodb-mongosh

# 2.外部客户端登录数据库

mongosh -u admin -p 123456 --authenticationDatabase admin

# 出现test,表示成功

5.数据库基础操作(测试造数据、清环境必备)

# 1. 数据库切换 / 创建

# 创建/切换测试专用库 test_api(接口测试库)

use test_api

# 查看服务器全部数据库

show dbs

# 清空当前测试库所有数据(测试结束清理脏数据用)

db.dropDatabase()

# 2.集合(数据表)操作

# 查看当前库所有集合

show collections

# 删除指定集合(清理测试表)

db.user_info.drop()

# 3.CRUD 测试数据操作(自动化测试常用)

# 新增测试数据

# 插入单条用户测试数据

db.user_info.insertOne({

userId: "u001",

username: "test01",

phone: "13900001111",

age: 24, status: 1

})

# 批量插入多条测试数据

db.user_info.insertMany([ {userId:"u002",username:"test02",phone:"13900002222",status:0}, {userId:"u003",username:"test03",phone:"13900003333",status:1}

])

# 查询数据(接口请求后校验数据库结果)

# 查询表全部数据,格式化展示

db.user_info.find().pretty()

# 条件查询:只查状态正常(status=1)的用户

db.user_info.find({status:1}).pretty()

# 精准匹配单条数据(通过唯一userId查询)

db.user_info.find({userId:"u001"}).pretty()

# 更新数据(修改测试数据状态)

# 修改单条数据:将u001的年龄改为25

db.user_info.updateOne(

{userId:"u001"},

{$set:{age:25}}

)

# 批量更新:所有status=0的用户改为正常状态1

db.user_info.updateMany(

{status:0},

{$set:{status:1}}

)

# 删除数据(测试后置清理脏数据)

# 删除单条指定用户

db.user_info.deleteOne({userId:"u001"})

# 批量删除失效用户

db.user_info.deleteMany({status:0})

# 4.创建测试专用业务账号(日常测试不用超级管理员)

# 登录后执行,创建仅操作test_api测试库的读写账号:

# 切换到测试库

use test_api

# 创建测试账号 test_op,密码 666666

db.createUser({

user: "test_op",

pwd: "666666",

roles: ["readWrite"]

})

# exit 退出当前test状态,在终端操作

# 使用测试账号外部登录命令

mongosh -u test_op -p 666666 --authenticationDatabase test_api

# 使用测试账号外部登录命令

mongosh -u test_op -p 666666 --authenticationDatabase test_api

# 退出外部客户端

.exit

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询