docker 安裝 mongodb 容器 及 掛載 配置文件、數據存放目錄,日志存放目錄,備份目錄等


十年河東,十年河東,莫欺少年窮

學無止境,精益求精

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();
        }

查看插入是否成功

 

 萬事大吉,大吉大利,今日吃雞,明日核酸檢測

@陳大六的博客 


免責聲明!

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



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