当前位置: 首页 > news >正文

docker学习(十五)docker安装MongoDB

什么是MongoDB?

MongoDB 是一个开源的、面向文档的 NoSQL 数据库管理系统,它以高性能、灵活的数据存储方式而闻名。与传统的关系型数据库不同,MongoDB 采用了一种称为 BSON(Binary JSON)的二进制 JSON 格式来存储数据。它是一种非常适合存储大量非结构化或半结构化数据的数据库解决方案。

以下是 MongoDB 的一些关键特点:

  • 面向文档: MongoDB 以文档的方式存储数据,每个文档是一个自包含的数据单元,类似于 JSON
    格式。这允许您在单个文档中存储多种不同类型的数据,而无需严格的表结构。

  • 灵活的数据模型: MongoDB的灵活模式允许您在同一集合(类似于关系型数据库中的表)中存储不同结构的文档,这在面对多变的数据情况下非常有用。

  • 水平可扩展性: MongoDB 能够在多台服务器上进行分布式部署,并能够水平扩展以处理大量数据和高并发请求。

  • 查询语言: MongoDB 提供了强大的查询语言和丰富的查询操作符,使您能够灵活地检索和处理数据。

  • 索引支持: MongoDB 支持多种类型的索引,以加快数据检索速度。

  • 高性能: MongoDB 的设计和优化使其能够在高负载情况下提供快速的读写操作。

  • 开源和社区支持: MongoDB 是开源项目,拥有活跃的社区,提供了大量的文档、教程和支持资源。

  • 可扩展性: MongoDB 可以很容易地扩展以适应不断增长的数据需求。

MongoDB 在许多应用场景中都表现出色,特别是在需要处理大量半结构化数据、快速迭代开发以及需要灵活模式的应用程序中。它常被用于 Web
应用程序、移动应用程序、物联网设备、日志分析等各种领域。由于 MongoDB 的特性,它在许多情况下可以作为关系型数据库的替代方案。

1.拉取mongodb镜像

docker pull mongo

2.创建文件夹

mkdir -p /home/mongo/conf/
mkdir -p /home/mongo/data/
mkdir -p /home/mongo/logs/

3.新增mongod.conf文件

 cd /home/mongo/conf && vi 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

4.新增mongod.log文件

cd /home/mongo/logs/ && vi mongod.log##log文件不需要内容
chmod  777 mongod.log 

5.docker容器构建以及启动mongodb

cd /
docker run -it \--name mongodb \--restart=always \--privileged \-p 27017:27017 \-v /home/mongo/data:/data/db \-v /home/mongo/conf:/data/configdb \-v /home/mongo/logs:/data/log/  \-d mongo:latest \-f /data/configdb/mongod.conf

6.进入容器创建账号密码

##进入容器##
docker exec -it mongodb /bin/bash##进入mongodb shell##
mongosh admin##创建账号/密码##
db.createUser({ user: 'admin', pwd: '123', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

在这里插入图片描述

此处需勾选, 否则可能会出现看不到数据库表

在这里插入图片描述

http://www.lryc.cn/news/133260.html

相关文章:

  • 3.JQuery closest()的用法
  • 速通蓝桥杯嵌入式省一教程:(七)定时器输入捕获中断与PWM频率占空比测量
  • 深入理解python虚拟机:程序执行的载体——栈帧
  • 云服务器-Docker容器-系统搭建部署
  • ES 索引重命名--Reindex(一)
  • Spring之bean的生命周期
  • 策略梯度方法
  • 博客系统之单元测试
  • 【ARM v8】如何在ARM上实现x86的rdtsc()函数
  • redis--事务
  • 111. 二叉树的最小深度
  • SpringMVC归纳与总结
  • Python学习笔记_进阶篇(三)_django知识(二)
  • RISC-V 整型通用寄存器介绍
  • 学习Vue:【性能优化】异步组件和懒加载
  • pdf格式文件下载不预览,云存储的跨域解决
  • httplib + nlohmann::json上传数据时中文乱码解决
  • JavaScript中的设计模式之一--单例模式和模块
  • 回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)
  • css学习4(背景)
  • 二、SQL,如何实现表的创建和查询
  • 大数据及软件教学与实验专业实训室建设方案
  • 信创办公–基于WPS的EXCEL最佳实践系列 (公式和函数)
  • 【Apollo】自动驾驶感知——毫米波雷达
  • SpringBoot部署到腾讯云
  • Git 设置代理
  • 基于Spring Boot的机场VIP客户管理系统的设计与实现(Java+spring boot+MySQL)
  • 图数据库_Neo4j学习cypher语言_使用CQL_构建明星关系图谱_导入明星数据_导入明星关系数据_创建明星关系---Neo4j图数据库工作笔记0009
  • 恒运资本:算力概念强势拉升,亚康股份“20cm”涨停,首都在线等大涨
  • Neo4j之union基础