前言
本章將使用docker安裝mongo,前提條件是已經安裝完docker並會使用docker。
如果還沒有安裝docker,可以參考在CentOS7下安裝Docker
如果還不會docker,但需要學習mongodb相關的知識,可以參考另一篇博客,那里詳細講述了如何在Linux上安裝mongodb環境。
附上博客鏈接 博客傳送門
安裝mongo
在Docker Hub上查找鏡像
拉取官方鏡像
[root@e2ab0x9jme3furrd ~]# docker pull mongo
查看本地鏡像
[root@e2ab0x9jme3furrd ~]# docker images
創建文件夾
[root@e2ab0x9jme3furrd ~]# mkdir -p /data/mongo/data
[root@e2ab0x9jme3furrd ~]# mkdir -p /data/mongo/conf
[root@e2ab0x9jme3furrd ~]# mkdir -p /data/mongo/backup
[root@e2ab0x9jme3furrd ~]# cd /data/mongo
[root@e2ab0x9jme3furrd mongo]# ll
total 0
drwxr-xr-x 2 root root 6 Nov 30 15:46 backup
drwxr-xr-x 2 root root 6 Nov 30 15:46 conf
drwxr-xr-x 2 root root 6 Nov 30 15:45 data
運行容器
[root@e2ab0x9jme3furrd mongo]# docker run -v /data/mongo/data:/data/db -v /data/mongo/backup:/data/backup -v /data/mongo/conf:/data/configdb --name mongod -p 27017:27017 -d mongo --auth
查看容器狀態
[root@e2ab0x9jme3furrd mongo]# docker ps
創建一個新用戶
執行完前面的步驟,我們已經可以進入容器,並且可以打開mongo的命令行窗口。但是這樣存在一個問題,就好像一個人沒穿衣服在大街上,是很不安全的。
所以我們在此步創建一個新用戶,每次進入mongo的命令窗口時輸入用戶名密碼登錄,這樣在一定程度是解決了安全性問題,防止某些居心叵測的人登錄你的數據庫刪庫跑路。
[root@e2ab0x9jme3furrd mongo]# docker exec -it mongod mongo admin
MongoDB shell version v5.0.4
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e303c2e5-ff96-4f50-bddc-6e676edeff45") }
MongoDB server version: 5.0.4
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
https://community.mongodb.com
> db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDa'} ]}) db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDat'} ]})db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyData'} ]}db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDat'} ]})db.createUser({user: 'admin', pwd: '123456', roles: [ {role: 'userAdminAnyDa'} ]}) '} ]})
uncaught exception: SyntaxError: '' literal not terminated before end of script :
@(shell):1:6
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
"readWriteAnyDatabase"
]
}
> db.auth('admin', '123456')
1
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
測試連接
至此,我們就在Linux下安裝好了mongo環境!!!