docker创建mongodb4.0容器并过载配置文件、数据文件、日志文件

mongodb:4.0

  • 拉取镜像

    docker pull mongo:4.0
    

    image-20231122150242427

  • 查看拉取的镜像

    docker images
    

    image-20231122150311804

  • 创建待会儿需要挂载的文件夹

    mkdir -p /opt/docker/mongodb_test/{data,log,conf}
    

    image-20231122150748020

  • 编写配置文件

    cd /opt/docker/mongodb_test/conf
    vim mongodb.conf
    
    #端口
    port=27017
    #数据库文件存放目录
    dbpath=/data/db/
    #日志文件存放路径
    logpath=/data/log/mongodb.log
    #使用追加方式写日志
    logappend=true
    #以守护线程的方式运行,创建服务器进程
    fork=true
    #最大同时连接数
    maxConns=100
    #不启用验证
    #noauth=true
    #每次写入会记录一条操作日志
    journal=true
    #存储引擎有mmapv1、wiredTiger、mongorocks
    storageEngine=wiredTiger
    #访问IP
    bind_ip=0.0.0.0
    #用户验证
    auth=true
    

    image-20231122151037351

  • 创建容器,并挂载相应的目录

    docker run -d -p 27018:27017 -v /opt/docker/mongodb_test/data:/data/db -v /opt/docker/mongodb_test/conf:/data/configdb -v /opt/docker/mongodb_test/log:/data/log --name mongo_test mongo:4.0 --auth
    

    image-20231122171632277

  • 使用navicate测试

image-20231122151558096

  • 此时没有账号密码验证的mongodb已经可以连接,但无法使用

    image-20231122172029498

  • 下面设置账号密码

    • 进入容器

      docker exec -it mongo_test mongo admin
      

      image-20231122151815767

    • 进入admin数据库

      use admin
      

      image-20231122152236355

    • 创建超级权限root角色的用户,或者userAdminAnyDatabase 等角色权限比较大的用户,我创建的是拥有超级权限root角色的用户admin,密码是admin123

      db.createUser({user:'admin',pwd:'admin123',roles:[{role:'root',db:'admin'}]})
      

      image-20231122152412458

    • 认证登录db.auth(‘用户名’,‘密码’),打印1则代表认证通过

      db.auth('admin','admin123')
      

      image-20231122152506869

    • 退出容器

      exit
      

      image-20231122171823651

  • navicate使用账号密码进行连接

    image-20231122171934249

  • 可以操作数据库了

    image-20231122171957503

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值