1:首先使用shell进入服务器 docker pull mongo 注:这是默认拉取最新的版本 可能你的代码连接不上 版本太高 可以接 :加版本号 如 4.0.4 等自由选择
2:下载完docker images 查看下
3:使用
docker run --name mongo -d -p 27017:27017 -v /home/mongo_data/configdb:/data/configdb -v /home/mongo_data/db:/data/db docker.io/mongo
-p 将竟然端口挂载到宿主中 mongdb 默认使用27017
-v 将镜像数据存储数据挂载到 宿主机上 前面是宿主机地址 后面是mongdb存储数据的地址 -v /home/mongo_data/configdb:/data/configdb 宿主机文件夹没有的话自己建立在执行命令
4:docker ps 下查看容器是否启动成功 如图
5:设置mongdb账户和管理员
docker exec -it 5f7627a82c13 /bin/bash it后面跟的是镜像的id 进入容器内设置 如果不是root账户登录的 命令前面加上 sudo
6:
mongodb密码和传统数据如mysql等有些区别:
mongodb设置管理用户和密码:
show dbs 在mongodb新版本里并没有admin数据库,但是并不妨碍第2步操作。
#进入admin数据库
use admin
#创建管理员账户 db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] }) mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。 #验证第3步用户添加是否成功 db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。
进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号
use admin db.auth("useradmin", "adminpassword")
新建你需要管理的mongodb 数据的账号密码
use yourdatabase db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
注:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。
新建数据库读写账户
use yourdatabase db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })
注:该用户用于该数据的读写,只拥有读写权限。
第一种 (类似 MySql)
客户端连接时,指定用户名,密码,db名称 mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
第二种
客户端连接后,再进行验证
mongo --port 27017 use admin db.auth("adminUser", "adminPass")
// 输出 1 表示验证成功
mongo admin -u username -p passwd
生产中常用 URI 形式对数据库进行连接
mongodb://your.db.ip.address:27017/foo
添加用户名密码验证
mongodb://simpleUser:simplePass@your.db.ip.address:27017/foo
实例:
#形式一
connect(host=‘mongodb://root:mongo@172.20.10.144:37017/ppmoney_website_minder‘) #形式二 connect(host=‘mongodb://root:mongo@172.20.10.144:37017/db?authSource=ppmoney_website_minder‘)
原文:https://www.cnblogs.com/hebpengyuyan/p/10400526.html