Docke下安裝MongoDB,配置用戶名和密碼

拉取鏡像

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地址在這裏插入圖片描述
出現下圖代表連接成功!就可以操作數據庫了在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章