Mac上Docker安装MongoDB
前提: mac上安装了docker1. 拉取最新MongoDB镜像docker pull mongo:latest2. 查看镜像docker images3. 运行mongo容器docker run -itd --name mongo -p 27017:27017 mongo --auth提示:docker run :创建一个新的容器并运行一个命令-i: 以交互模式运行容器,通常与 -t 同时使用
·
前提: mac上安装了docker
1. 拉取最新MongoDB镜像
docker pull mongo:latest
2. 查看镜像
docker images
3. 运行mongo容器
docker run -itd --name mongo -p 27017:27017 mongo --auth
提示:
- docker run :创建一个新的容器并运行一个命令
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -d: 后台运行容器,并返回容器ID;
- –name=“nginx-lb”: 为容器指定一个名称;
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- –auth: 开启mongo容器密码认证
mongodb安装成功
4. 进入mongo容器
docker exec -it mongo mongo admin
提示:
- docker exec :在运行的容器中执行命令
- -i :即使没有附加也保持STDIN 打开
- -t :分配一个伪终端
5. 创建管理员账号和密码
这里账号和密码都设为了admin
db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
6. 用创建的账号登陆
db.auth('admin', 'admin')
管理员账户登录后,可以用该账户创建其他数据库管理员账号
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
role内建角色有如下:
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
MongoDB的GUI管理工具:Robo 3T
https://robomongo.org/download
MongoDB的备份和恢复
- 备份方式:
docker cp
mongodump
- 恢复方式:
docker cp
mongorestore
https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html
更多推荐
已为社区贡献2条内容
所有评论(0)