any86/Notes

docker安装mongo

Opened this issue · 0 comments

any86 commented

安装mongo

docker pull mongo

初始化容器

docker run -d -p 27017:27017 -v /data/mongo/database:/data --name mongo mongo --auth

解释下参数:
-p: 把容器中的docker的端口映射到真实的服务器, 语法: 服务器端口 : 容器内端口
-v: 把容器中的docker的存储目录映射到真实的服务器目录, 语法: 服务器真实文件夹 : 容器内目录
--name: 给容器起个名, 这样后面docker exec的时候, 可以直接使用这里起的名字, 我们这里起名"mongo"
--auth: 默认mongo不需要用户密码也是可以登陆的, 只有开启了auth, 才能保证只有有权限的账号能登陆.

进入mongo容器

docker exec -it mongo /bin/bash

创建账户

  1. 先打开mongo
mongo
  1. 进入mongo命令行后, 首先切换到admin库. admin是默认存在的库.
use admin
  1. 进入admin库后就可以开始创建账户了.
db.createUser({
   user: "root",
   pwd: "xxxxxx",
   roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

这里创建了用户root, 密码为'xxxxxx', 角色为"可以"管理"所有数据库的管理员", 注意这里的"管理"不包括"增删改查", 所以请继续往下看.

给其他库授权

刚刚我们只是给了"root"用户管理所有数据库的权限,但是不包括"增删改查", 接下来我们给"root"用户对"xxxDB"的所有控制权限, 这权限对应的角色"dbOwner".

db.grantRolesToUser('root',[{role:'dbOwner',db:'xxxDB'}])

退出命令(exit)

退出mongo和退出容器的命令都是:

exit