四时宝库

程序员的知识宝库

使用 docker 快速安装 mongodb 实战记录

mongodb 是一种文档型 nosql 数据库,适合高并发读写、大规模数据处理。

使用 docker 安装 mongodb 简便,方便开发和测试,本文带你一起在 Linux(使用 centos) 上实战安装,windows和mac 用户可以通过 docker desktop 一键安装。

一、下载安装

使用命令 docker search mongo 查看可用的版本


本次使用官方镜像。

1、拉取 mongo 镜像(本次安装最新版,不写 :lastest 表示拉取最新版)

docker pull mongo:latest

查看这个最新版镜像里的 mongo 的版本是 5.0.5:

2、创建 mongo 持久化目录

mkdir -p /usr/local/docker-study/mongodb_5.0.5/data

确保数据持久化,防止容器删除后数据丢失,也方便后期备份、恢复、迁移。

3、运行容器

docker run -itd --name mongo_5.0 -v /usr/local/docker-study/mongodb_5.0.5/data:/data/db -p 27017:27017 mongo:l atest --auth

命令参数含义:

  • -itd: 3个参数的组合:-i 或 --interactive: 使容器的标准输入保持打开状态。-t 或 --tty: 分配一个伪终端(pseudo-TTY)。-d 或 --detach: 在后台运行容器。
  • --name mongo_5.0: 指定容器的名称为 "mongo_5.0"。
  • -v /usr/local/docker-study/mongodb_5.0.5/data:/data/db: 将宿主机上的 /usr/local/docker-study/mongodb_5.0.5/data 目录挂载到容器内的 /data/db 目录,实现数据的持久化。
  • -p 27017:27017: 将容器的端口 27017 映射到宿主机的端口 27017,允许从宿主机访问 MongoDB 数据库。
  • mongo:l atest: 指定要运行的 Docker 镜像名称为 "mongo",标签为 "latest",即最新版本的 MongoDB。
  • --auth: 启用 MongoDB 的身份验证功能。

二、创建用户

先登录 mongo 容器,进入 admin 数据库:

docker exec -it mongo_5.0 mongo admin

mongo admin: 表示要在容器内执行的命令。此处是在 MongoDB 容器内启动 mongo shell,并连接到 "admin" 数据库。mongo 是 MongoDB 的命令行客户端工具,admin 是 MongoDB 默认的管理数据库。

mongo 默认没有用户,创建一个用户:

db.createUser({
	user: 'root',
	pwd: '1234567a',
	roles: [{
		role: 'userAdminAnyDatabase',
		db: 'admin'
	},
	'readWriteAnyDatabase']
});

下面是操作过程:

表示在 MongoDB 数据库中创建一个 root 用户,并为该用户授予在 "admin" 数据库中管理用户和角色的权限,以及在任意数据库中的读写权限。

命令参数说明:

  • db.createUser(): 这是 MongoDB shell 中的一个函数,用于创建用户。
  • { user: 'root', pwd: '1234567a', roles: [ { role: 'userAdminAnyDatabase', db: 'admin' }, 'readWriteAnyDatabase']}: 这是一个 JavaScript 对象,其中包含了要创建的用户的详细信息。
  • user: 'root': 指定要创建的用户的用户名。
  • pwd: '1234567a': 指定要创建的用户的密码。
  • roles: 指定要授予用户的角色列表。这里有两个角色:{ role: 'userAdminAnyDatabase', db: 'admin' }: 授予用户在 "admin" 数据库中具有 "userAdminAnyDatabase" 角色的权限。这个角色允许用户管理任意数据库的用户和角色。'readWriteAnyDatabase': 授予用户在任意数据库中具有读写权限的角色。这意味着用户可以读取和写入任意数据库中的数据。

三、测试连接

连接 mongo 数据库,使用 db.auth('root', '1234567a') 验证用户登录。

测试插入一条记录,使用 db.user.insert({"name":"zhangsan","level":5})

查询,使用 db.user.find() 可以查到,说明插入和查询功能都成功:

四、第三方工具连接

连接 mongodb 有很多工具,本次使用 navicat 连接,点击连接,选择 MongoDB:


输入连接信息:

五、总结

使用 docker 安装 mongodb,可以快速搭建一个 mongodb 数据库,方便开发、测试。赶快来试试吧,嘿嘿。



发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接