Skip to content

docker安装mongo #88

Open
Open

Description

@any86

安装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

Activity

  1. changed the title [-]mongo的授权语法[/-] [+]docker安装mongo[/+] on Apr 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions