十年河東,十年河東,莫欺少年窮
學無止境,精益求精
1、下載鏡像
docker pull mongo
2、后台運行容器並指定掛載
2.1、新建相關目錄、文件
cd /mnt --進入 mnt 目錄 mkdir mongodb --創建mongodb 目錄 cd /mnt/mongodb -- 進入 mongodb 目錄 mkdir backup --創建 備份目錄 mkdir data --創建數據保存目錄 mkdir conf --創建配置文件目錄 mkdir logs --創建日志目錄 cd /mnt/mongodb/conf --進入配置文件目錄 vim mongodb.conf --新建mongodb 配置文件
2.2、編輯配置文件為
# Where and how to store data. storage: dbPath: /mnt/mongodb/data journal: enabled: true systemLog: destination: file logAppend: true path: /mnt/mongodb/logs/mongod.log # network interfaces net: port: 27017 bindIp: 0.0.0.0 #auth auth:false
dbpath :數據庫文件存放目錄
path:日志存放目錄
port:端口號
bindip : 0.0.0.0 允許外部容器訪問 ,注:不要寫127.0.0.1
auth : 不使用密碼賬戶登錄
2.3、后台運行容器
docker run --name mongo --restart=always -p 27017:27017 --net=mynet2 -v /mnt/mongodb/data:/data/db -v /mnt/mongodb/backup:/data/backup -v /mnt/mongodb/logs:/data/log -v /mnt/mongodb/conf:/data/conf -d mongo
--name : 指定容器名稱
--restart = always ,會隨着docker的啟動而啟動
-p 暴露端口
--net 指定特定的網絡段,具體可參考:docker 自定義網絡 不使用 --link 也能實現容器間網絡互通
-v 掛載,分別掛載數據目錄,備份目錄,日志存放目錄,配置文件掛載
-d 后台運行
2.4、在linux主機上修改配置文件,驗證配置文件是否掛載成功
[root@localhost mongodb]# vim conf/mongodb.conf
在linux主機上編輯 配置文件
新增如下內容 【最大訪問客戶端數,默認2000,修改為1000】:
#maxConns # maxConns:1000
進入容器,查看配置文件是否同步變化:
docker exec -it c7dd4de8148b /bin/bash cd data/conf/ cat mongodb.conf
配置文件同步變化,掛載成功。
2.5、數據備份
在運行一段時間以后,我們可以執行如下命令進行數據庫備份:
docker exec mongo sh -c 'exec var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u jsmith -p password -d dbname -o /data/backup/$var_test1.dat'
2.6 其他
賬戶密碼可參考:https://www.cnblogs.com/smiler/p/10112676.html
配置文件可參考:https://www.cnblogs.com/xiaoshenglele/articles/7041762.html
2.7、驗證連接
ip addr
連接成功
2.8、項目中訪問mongodb容器
配置文件【可參考redis容器:netcore3.1 webApi項目發布Docker后,通過容器互聯,訪問redis 【部署redis到docker】】
"MongoDbConnect": "mongodb://mongo:27017",
容器不同網絡間互聯
[root@localhost webapp]# docker network connect mynet webapp01
[root@localhost webapp]# docker network connect mynet2 webapp01
C# 增加一條日志
/// <summary> /// 插入一條mongodb日志 /// </summary> /// <returns></returns> [HttpGet] [AllowAnonymous] [Route("MongoTsty")] public IActionResult MongoTsty() { Log.Inst.Error($"mogodb測試"); return Ok(); }
查看插入是否成功
萬事大吉,大吉大利,今日吃雞,明日核酸檢測