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" }