Docker系列 - CentOS使用外部配置文件部署MongoDB,並掛載主機目錄


創建文件目錄用於掛載mongodb數據和配置

在centos中執行如下命令

 

cd /home/
mkdir docker
cd docker
mkdir mongo
cd mongo
mkdir data logs conf
chmod 777 data
touch logs/mongod.log
chmod 777 logs/mongod.log
touch conf/mongod.conf
chmod 766 conf/mongod.conf vim conf
/mongod.conf


添加如下配置

# 數據庫文件存儲位置
dbpath = /data/db
# log文件存儲位置
logpath = /data/log/mongod.log
# 使用追加的方式寫日志
logappend = true
# 是否以守護進程方式運行
# fork = true
# 全部ip可以訪問
bind_ip = 0.0.0.0
# 端口號
port = 27017
# 是否啟用認證
auth = true
# 設置oplog的大小(MB)
oplogSize=2048

 

Docker Hub上關於mongo鏡像的詳細說明。
https://hub.docker.com/_/mongo/


啟動mongodb容器

docker run -itd --name mongodb --restart=always --privileged -p 27017:27017 -v /home/docker/mongo/data:/data/db -v /home/docker/mongo/conf:/data/configdb -v /home/docker/mongo/logs:/data/log/ mongo:latest -f /data/configdb/mongod.conf

# --restart=always Docker服務重啟容器也啟動
# --privileged 擁有真正的root權限
# -f 指定配置文件


查看啟動的容器並進入容器

docker container ps -a

docker exec -it mongodb bash
mongo
use admin

 創建管理員賬號

db.createUser({user:'root',pwd:'1qazxsw2',roles:['root']})

db.auth('root','1qazxsw2')

db.updateUser("apiAdmin",{roles : [{"role" : "dbAdmin","db" : "leo-api-auto-db"},{"role" : "readWrite","db" : "leo-api-auto-db"}]})
use leo-api-auto-db

一定要記得添加角色 readWrite, 不然會沒有權限讀寫數據庫

db.createUser({user:'admin',pwd:'password',roles:[{role:'dbAdmin',db:'leo-api-auto-db'},'readWrite']})

如果在阿里雲等雲服務器中部署mongodb,記得開放27017端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM