• docker部署mongoDB


    测试环境一般直接使用docker部署mongo,速度比较快

    Docker部署MongoDB是一种高效且灵活的方式,用于在容器化环境中快速安装和运行MongoDB数据库。以下是关于Docker部署MongoDB的简要介绍:
    Docker是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间没有任何接口。MongoDB则是一个流行的NoSQL数据库,以其灵活性和可扩展性而著称。
    通过Docker部署MongoDB,您可以轻松地在任何支持Docker的平台上创建和管理MongoDB实例。这种部署方式具有许多优势,包括:
    环境一致性:Docker容器提供了一致的运行环境,无论在哪个机器或平台上,MongoDB的行为都将保持一致。
    快速部署:使用Docker可以极大地简化MongoDB的部署过程,只需通过简单的命令即可创建并启动容器。
    资源隔离:Docker容器提供了资源隔离机制,确保MongoDB实例在运行时不会受到其他应用程序的干扰。
    易于扩展:通过Docker的容器编排工具(如Docker Swarm或Kubernetes),您可以轻松地扩展MongoDB集群的规模,以满足不断变化的业务需求。
    此外,Docker部署MongoDB还提供了许多可配置选项,例如端口映射、数据卷挂载等,使您能够根据自己的需求进行定制。
    总之,Docker部署MongoDB是一种高效、灵活且易于管理的解决方案,适用于各种规模的应用程序和数据存储需求。

    步骤

    下载镜像,我选择了4.4.11版本

    docker pull mongo:4.4.11
    
    • 1

    在这里插入图片描述

    普通启动

    docker run -itd --name mongo -p 27017:27017 mongo --auth
    
    • 1

    数据库持久化

    docker volume create mongo_local_data
    
    docker run --name my_mongo -v /mongo_local_data:/data/db  --rm -d -p 27017:27017 mongo:4.4.11
    
    • 1
    • 2
    • 3

    挂载配置文件和日志

    docker run --restart=always --name my_mongo -v /mongo_local_data:/data/db -v /data/mongo/conf:/data/conf -v /data/mongo/log:/data/log -d -p 27017:27017 mongo:4.4.11
    
    
    
    docker run --restart=always --name my_mongo -v /mongo_local_data:/data/db -v /data/mongo/conf:/data/conf -v /data/mongo/log:/data/log -d -p 27017:27017 mongo:4.4.11 --replSet "rs0"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    进入容器,准备创建用户和密码

    docker exec -it mongo mongo admin
    
    • 1

    执行命令

    创建用户

    use admin; // 切换到admin数据库  
    db.createUser({  
        user: 'cert_db_user',  
        pwd: 'VzvUwSdn2FdiI2c1',  
        roles: [  
            { role: 'userAdminAnyDatabase', db: 'admin' }, // 在admin数据库上赋予userAdminAnyDatabase角色  
            { role: 'readWriteAnyDatabase', db: 'admin' }  // 在admin数据库上赋予readWriteAnyDatabase角色  
        ]  
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    连接

    db.auth('cert_db_user', 'VzvUwSdn2FdiI2c1');
    
    • 1

    在这里插入图片描述

    连接工具

    mongoshell : https://www.mongodb.com/try/download/shell

    Navicat for MongoDB: https://www.navicat.com.cn/download/direct-download?product=navicat_mongodb_cs_x64.exe&location=1

    mongoshell

    双击:mongosh.exe
    在这里插入图片描述
    输入mongo的url

    mongodb://cert_db_user:VzvUwSdn2FdiI2c1@127.0.0.1:27017/cert_db?authSource=cert_db
    
    • 1

    navicat

    在这里插入图片描述

    错误 MongoDB 运行事务时报“Transaction numbers are only allowed on a replica set member or mongos“错误

    docker run -d -p 27018:27017 --name mongo1 mongo --replSet “rs0”

    docker exec -it 65 mongo # 进入主节点mongo

    #进行副本集配置

    如果只有一个节点

    var config={
          _id:"rs0",
          members:[
              {_id:0,host:"127.0.0.1:27017"},
     ]};
    
    • 1
    • 2
    • 3
    • 4
    • 5

    多个节点

    var config={
          _id:"rs0",
          members:[
              {_id:0,host:"192.168.11.45:27018"},
              {_id:1,host:"192.168.11.45:27019"},
              {_id:2,host:"192.168.11.45:27020"}
     ]};
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    #启动新的副本集

    > rs.initiate(config)
    { "ok" : 1 }
    此时命令提示符已经发生变化,由原来的 > 变成了 rs:SECONDARY>
    
    • 1
    • 2
    • 3
  • 相关阅读:
    电子信息类毕业生找工作有多难?研究所难进?大厂太卷?
    top 重定向输出
    linux查找命令使用的正则表达式
    CPDA|对招聘HR来说,会数据分析有多香?
    Flink学习25:窗口计算函数
    2区SCI,最快1个月左右录用!稳定检索39年
    Linux 隐藏进程
    简单概括下get请求和post请求的区别
    我的世界Minecraft基岩版开服服务器教程(Windows)开服器开服包下载开服网站服务器要多少钱开服核心开服端下载
    SpringBoot2运维实用篇(三)—— 多环境开发
  • 原文地址:https://blog.csdn.net/yujing1314/article/details/137906575