拉取鏡像
docker pull mongo
運行MongoDB容器
docker run --name mongodb -p 27017:27017 -d mongo --auth
查看 mongo 進程
docker ps -a
然後就可以在Windows下啓動MongoDB的客戶端遠程連接了
創建管理員admin 用戶和密碼
以 admin 用戶身份進入mongo
docker exec -it a7e5d4e4ca69 mongo admin
創建一個 admin 管理員賬號
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
上述操作的記錄詳情如下:
root@iz2zei0x4t16rv0e5buzvhz tmp]# docker exec -it a7e5d4e4ca69 mongo admin
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("5bd17aa0-f8f6-454e-a1f3-6917d98336bc") }
MongoDB server version: 4.0.4
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> use admin
switched to db admin
> db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> exit
創建普通用戶、密碼和數據庫
以 admin 用戶身份進入mongo
docker exec -it a7e5d4e4ca69 mongo admin
對 admin 進行身份認證
db.auth("admin","admin123456");
創建 用戶、密碼和數據庫
db.createUser({ user: 'swen', pwd: 'swen123456', roles: [ { role: "readWrite", db: "app" } ] });
退出
exit
上述操作記錄如下:
[root@iz2zei0x4t16rv0e5buzvhz tmp]# docker exec -it a7e5d4e4ca69 mongo admin
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("592da935-824f-4593-b056-a381915c7205") }
MongoDB server version: 4.0.4
> db.auth("admin","admin123456");
1
> db.createUser({ user: 'swen', pwd: 'swen123456', roles: [ { role: "readWrite", db: "app" } ] }
Successfully added user: {
"user" : "swen",
"roles" : [
{
"role" : "readWrite",
"db" : "app"
}
]
}
> exit
bye
[root@iz2zei0x4t16rv0e5buzvhz tmp]
對MongoDB進行操作
以 admin 用戶身份進入mongo
docker exec -it a7e5d4e4ca69 mongo admin
對 swen 進行身份認證
db.auth("swen","swen123456");
切換數據庫(沒有則會自動創建)
use app
創建collection添加數據
db.test.save({name:"zhangsan"});
上述操作記錄如下
[root@iz2zei0x4t16rv0e5buzvhz tmp]# docker exec -it a7e5d4e4ca69 mongo admin
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/admin
Implicit session: session { "id" : UUID("13f9c7bc-fc90-42b0-bfd8-a1a7a27aaee9") }
MongoDB server version: 4.0.4
> db.auth("swen","swen123456");
1
> use app
switched to db app
> db.test.save({name:"zhangsan"});
WriteResult({ "nInserted" : 1 })
> exit
bye
[root@iz2zei0x4t16rv0e5buzvhz tmp]#
在windows下遠程連接docker容器下的MongoDB
找到自己windows下MongoDB的安裝目錄下的bin文件輸入cmd
輸入:mongo Linux的IP地址
出現下圖代表連接成功!就可以操作數據庫了