準備:
新建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