您当前的位置: 首页 >  docker

qq_34412985

暂无认证

  • 0浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Docker运行Mongodb

qq_34412985 发布时间:2019-09-13 00:53:00 ,浏览量:0

获取 mongo 镜像

sudo docker pull docker.io/mongo:3.4.5

运行 mongodb 服务

sudo docker run -p 27017:27017 -v /tmp/db:/data/db -d mongo:3.4.5

运行 mongodb 客户端

sudo docker run -it mongo mongo --host --port 27017

[wj@localhost ~]$ sudo docker run -p 27017:27017 --name mymongo  -di 71c101e16e61

[wj@localhost ~]$ sudo docker exec -it ea197539599d /bin/bash 登录到mongodb的docker容器中

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

 

exit; (退出容器)

mongo --port 27017 -u admin -p password --authenticationDatabase admin (以刚建立的用户登录数据库 创建test用户) use test db.createUser( { user: "tester", pwd: "password", roles: [ { role: "readWrite", db: "test" } ] } );

exit

mongo -u tester -p --authenticationDatabase test (以刚创建的test用户登录)

mongodb其他操作命令

show collections (显示表)

db.find.表名 (查看表数据)

> show dbs(显示数据库) admin   0.000GB config  0.000GB local   0.000GB > use local (切换到数据库) switched to db local > show collections startup_log > db.startup_log.find() ...

使用 mongo-express 管理mongodb

mongo-express是MongoDB的一个可视化图形管理工具,这里我们还是通过docker来运行一个mongo-express,来管理上面创建的mongodb服务。 下载 mongo-express 镜像

sudo docker pull docker.io/mongo-express

启动 mongo-express 服务

sudo docker run -it --rm -p 8081:8081 --link :mongo mongo-express

访问 mongo-express

通过浏览器访问

http://:8081

使用 mongoclient 管理 mongodb 下载 mongoclient 镜像

sudo docker pull mongoclient/mongoclient

启动 mongoclient 服务

sudo docker run --name mongoclient -d -p 3000:3000 -e MONGO_URL=mongodb://:27017/ mongoclient/mongoclient

访问 mongoclient

通过浏览器访问

http://:3000

use database_name 如果数据库存在则进入数据库,不存在则创建数据库

db 显示当前所在数据库

show dbs 查询所有数据库 刚创建的数据库可能会看不到,那就插入一条数据。

db.flux.insert({"name":"测试"})

db.auth("admin","admin"); ##管理用户,需要当前认证的用户是database的userAdmin。

db.getUsers(); ##获取admin数据库下已经创建的users列表

db.dropUser("test") ##移除“test1”用户,

use common; ##普通用户查看数据,首先在admin数据库中认证

db.getUsers(); ##查看common数据库下的user列表

db.auth("common","common") ##切换成普通user,然后对数据进行读写

db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) 创建用户并赋予身份权限

创建成功返回

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0682s