1.获取mongo镜像
docker pull mongo
2.启动mongo
docker run --name mongo -p 27017:27017 -v /data/mongo:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin -d mongo
参数说明:
-d 后台启动 --name 自定义名称 -p 映射端口 -v 挂载数据目录和配置目录
-e 环境变量
注:
运行时加上 环境变量MONGO_INITDB_ROOT_USERNAME 和MONGO_INITDB_ROOT_PASSWORD 会自动启动授权
查看状态
3.连接
登录到mongo的容器里
docker exec -it mongo bash
使用交互的形式, 在名字为 `mongodb` 的容器中实行 `bash`这个命令
连接mongo
mongo -u admin -p admin
4.使用
(1)在容器中连接
新建数据库abc,添加用户baby,密码123456,授权readWrite,在abc上添加一条数据
> use abc; switched to db abc > db.createUser({user:"baby",pwd:"123456",roles:["readWrite"]}) Successfully added user: { "user" : "baby", "roles" : [ "readWrite" ] } > show users { "_id" : "abc.baby", "userId" : UUID("bde1abcc-e351-4e16-95c7-786e2f9a7f60"), "user" : "baby", "db" : "abc", "roles" : [ { "role" : "readWrite", "db" : "abc" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } > show databases admin 0.000GB config 0.000GB local 0.000GB > db.abc.insert({"name":"joe","age":"20"}) WriteResult({ "nInserted" : 1 }) > show databases abc 0.000GB admin 0.000GB config 0.000GB local 0.000GB > db.abc.find({"name":"joe"}) { "_id" : ObjectId("5e8d5ea9b116039555a29399"), "name" : "joe", "age" : "20" }
(2)在windows上连接
mongo 宿主机ip/数据库 -u用户名 -p密码
连接并查询数据
D:\mongodb\bin>mongo 192.168.99.100/abc -u baby -p 123456 MongoDB shell version v4.2.0 connecting to: mongodb://192.168.99.100:27017/abc?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("c1b84b1a-b94c-48d1-ac87-0c061d63a62e") } MongoDB server version: 4.2.5 > show databases abc 0.000GB > db.abc.find({"name":"joe"}) { "_id" : ObjectId("5e8d5ea9b116039555a29399"), "name" : "joe", "age" : "20" }