获取 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数据库中可用。超级账号,超级权限