Mongodb实战-Docker部署篇

2019年6月26日11:36:44 发表评论 208 views
摘要

关于mongodb 的docker快速部署,简单的用户管理,建库建表,插入数据,查询数据,都一起和逗哥完成了,后面我们继续学习,更高深的技能。

Mongodb实战-Docker部署篇

什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于`分布式文件存储`的开源`数据库`系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个`文档`,数据结构由键值(`key=>value`)对组成。
MongoDB 文档类似于 `JSON` 对象。字段值可以包含其他`文档`,`数组`及`文档数组`。

Mongodb实战-Docker部署篇
Mongodb官方文档

一、Docker 部署 mongodb

1,获取镜像

root@ubuntu:~# docker search mongo      #搜索镜像
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mongo                               MongoDB document databases provide high av...   5985      [OK]       # 一般我会选择关注度高的
mongo-express                       Web-based MongoDB admin interface, written...   470       [OK]    

2,构建 mongodb

docker run  \
--name mongodb_server \  #容器项目名称
-p 27017:27017  \   #映射的端口,意思是把本机的27017端口映射到容器的27017
-v /data/mongodb/configdb:/data/configdb/ \  #数据目录映射,持久化
-v /data/mongodb/db/:/data/db/ \
-d mongo --auth   #后台运行, 开启认证登录

3,查看 mongo 进程

root@ubuntu:/data/mongodb/configdb# docker ps

Mongodb实战-Docker部署篇

二、配置 admin 账户信息

1,使用admin登录mongo

docker exec -it  mongodb_server  mongo admin

Mongodb实战-Docker部署篇

2,创建一个 admin 管理员账号:

db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

=============
exit   #成功后退出即可。

Mongodb实战-Docker部署篇

3, MongoDB用户权限

内建的角色

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system

角色说明:

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

三、配置普通用户、数据库

上面我们针对admin账户,进行了配置,创建账户,授权等,下面我们进行普通user的管理;

3.1 创建普通user

root@ubuntu:/data/mongodb/configdb# docker exec -it  mongodb_server  mongo admin   #使用admin登录mongodb
> db.auth("admin","123456");    #对admin进行身份认证
1   #1代表正常  0代表异常
> db.createUser({ user: 'fqhy', pwd: '123456', roles: [ { role: "readWrite", db: "app" } ] });

> exit   #退出
bye

Mongodb实战-Docker部署篇

3.2 数据库操作(app)

root@ubuntu:/data/mongodb/configdb# docker exec -it  mongodb_server  mongo admin

> db.auth("fqhy","123456");
1
> use app
switched to db app
> db.test.save({name:"douge"});
WriteResult({ "nInserted" : 1 })
> exit

Mongodb实战-Docker部署篇

四、NoSQL Manager 第三方管理工具使用

MongoDB免费软件的NoSQL Manager
我下载的是windows版本
Mongodb实战-Docker部署篇
配置好后,链接即可。
Mongodb实战-Docker部署篇

插入数据:
Mongodb实战-Docker部署篇
之前我们命令行添加过1天,上面又添加1条,所以我们去看看,mongodb中是不是有2条 douge的数据呢??
Mongodb实战-Docker部署篇

至此,关于mongodb 的docker快速部署,简单的用户管理,建库建表,插入数据,查询数据,都一起和逗哥完成了,后面我们继续学习,更高深的技能,请任何问题,欢迎留言,谢谢。

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: