Docker安裝mongo並設置用戶名密碼

準備:

新建mongo目錄,在其下建立configdb data 2個目錄
在configdb下新建mongodb.conf配置文件,內容如下:

gappend=true
# ip 默認本機,設置爲0.0.0.0可以外網連接
bind_ip=0.0.0.0
# 端口
port=27017
# 是否後臺運行,設置爲true 啓動 進程在後臺運行的守護進程模式。默認false。 
fork=true
# 預分配方式。默認false:使用預分配方式來保證寫入性能的穩定,預分配在後臺進行,並且每個預分配的文件都用0進行填充。這會讓MongoDB始終保持額外的空間和空餘的數據文件,
# 從而避免了數據增長過快而帶來的分配磁盤空間引起的阻塞。設置noprealloc= true來禁用預分配的數據文件,會縮短啓動時間,但在正常操作過程中,可能會導致性能顯著下降。
noprealloc=true
# 用戶認證,默認false。不需要認證。當設置爲true時候,進入數據庫需要auth驗證,當數據庫裏沒有用戶,則不需要驗證也可以操作。直到創建了第一個用戶,之後操作都需要驗證。
auth=true

拉取鏡像

 docker pull mongo

查看鏡像

[root@wdy mongo]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
mongo                   latest              965553e202a4        5 weeks ago         363MB

啓動容器

[root@wdy mongo]# docker run --name telemedicine-mongo --restart=always -p 27017:27017 -v /wdy/mongo/data:/data -v /wdy/mongo/configdb:/data/configdb -d mongo
4db20248d1874407baccf62aee8cd291d8fbcedd682512c34e3f88258b98b9e2
[root@jifang001 mongo]# 

查看容器進程:

[root@wdy configdb]# docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                               NAMES
4db20248d187        mongo                         "docker-entrypoint.s…"   9 minutes ago       Up 9 minutes        0.0.0.0:27017->27017/tcp            my-mongo

設置用戶名密碼過程:

[root@jifang001 configdb]# docker exec -it 4db20248d187 mongo admin
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("da6b17db-0c7d-4a9a-a5c1-58434747d31d") }
MongoDB server version: 4.2.1
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
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
> db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
> db.auth("root","root");
> 1
>  db.createUser({ user: 'wdy', pwd: '123456', roles: [ { role: "readWrite", db: "mydb" } ] });
Successfully added user: {
	"user" : "wdy",
	"roles" : [
		{
			"role" : "readWrite",
			"db" : "mydb"
		}
	]
}
> db.auth("wdy","123456");
1
> use mydb
switched to db mydb
> db.test.save({name:"tmname-online"});
WriteResult({ "nInserted" : 1 })
> db.test.find({});
{ "_id" : ObjectId("5deda790d138a6c707ce9d20"), "name" : "tmname-online" }
> 

安裝完成
用連接工具連接測試:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
OK

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