創建文件目錄用於掛載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端口