美文网首页
Docker + MongoDB

Docker + MongoDB

作者: GongZH丶 | 来源:发表于2019-04-01 11:08 被阅读0次

MongoDB的常规安装方式:https://docs.mongodb.com/manual/installation/

这边记录通过Docker运行mongo容器。

mongo image,在Docker Hub上能找到mongodb的镜像,https://hub.docker.com/_/mongo

  1. pull image
docker pull mongo
//docker pull mongo:4.0
image.png
  1. 运行容器
docker run -p 27017:27017 --name test-mongo -d mongo:4.0
//test-mongo:container的名称
image.png

这样,就完成了容器化mongodb。

  1. 连接到momgodb
    MongDB的GUI管理工具是 Studio 3T


    image.png

    连接成功后,可以看到默认的几个库:


    image.png

4.添加用户认证
Docker Hub 的mongo 镜像文档中可以找到开启身份认证的说明,就是启动容器的时候加上-auth启动参数。

//先删除前面运行的test-mongo的容器
docker stop test-mongo
docker rm test-mongo
//运行容器
docker run -p 27017:27017 --name test-mongo -d mongo:4.0 --auth

//进入容器
docker exec -it test-mongo mongo admin  //test-mongo是容器名称

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


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



image.png

连接到mongodb:


image.png image.png

5.创建数据库,指定用户
使用前面创建的管理员账户授权

db.auth("root","root") //成功会打印1

use book //创建名叫book的数据库 ,成功会打印 switched to db book

//添加用户
db.createUser({ user: "test", pwd: "123456", roles: [{ role: "readWrite", db: "book" }] })

image.png

测试连接:


image.png

这个指定用户只能看到指定的数据库。

6.挂载数据卷,指定配置文件和数据存储位置

docker run -p 27018:27017 --name test-mongo2 -v 本机目录:/etc/mongo -v 本机目录:/data/db -d mongo:4.0 --config /etc/mongo/mongo1.conf

相关文章

网友评论

      本文标题:Docker + MongoDB

      本文链接:https://www.haomeiwen.com/subject/jajmbqtx.html