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

使用docker部署MongoDB数据库

最近由于工作需要搭建MongoDB数据库:将解析的车端采集的数据写入到数据库,由于MongoDB高可用、海量扩展、灵活数据的模型,因此选用MongoDB数据库;由于现公司只有服务器,因此考虑容器化部署MongoDB数据,特此记录一下~

一、镜像拉取

使用如下命令拉取最新MongoDB镜像

docker pull mongo

二、创建MongoDB容器

2.1 创建宿主机目录

执行如下代码:

mkdir -p /home/bigdata/mongodb_bigdata/data
mkdir -p /home/bigdata/mongodb_bigdata/conf
mkdir -p /home/bigdata/mongodb_bigdata/logs

创建这几个目录的原因是:

将docker容器挂载的宿主机目录与容器内部的的路径进行映射,相当于对容器的数据做了一个backup。容器销毁时,可以通过宿主机目录对容器的数据进行恢复。

2.2 创建docker容器

执行如下命令:

docker run -dit --name mongodb -p 27019:27017 \
-v /home/bigdata/mongodb_bigdata/data:/data/db \
-v /home/bigdata/mongodb_bigdata/conf:/data/configdb \
-v /home/bigdata/mongodb_bigdata/logs:/data/log/ \
--restart always -d mongo

2.3 启动容器

执行如下命令

docker exec -ti mongodb /bin/bash

执行上述命令后就进入到容器内部

2.4 创建账号

进入到容器内部后,使用命令mongosh进入到命令行执行页面:

进入到admin

c

创建超级管理员账号

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

创建bigdata_db库并创建用户

# 创建库
use bigdata_db;# 创建读写帐号
db.createUser({user: "bigdata_rw",pwd: "11111111",roles: [{ role: "readWrite", db: "bigdata_db" }    ]})

三、案例

3.1 python链接mongodb库

# ------------------------------ mongodb连接信息配置 -------------------------------
# 读写
username = 'bigdata_rw'
password = '2222'
ip = 'xx.xxx.xx.xx'
port = 27019
database = 'bigdata_db'
mongodb_info = f"mongodb://{username}:{password}@{ip}:{port}/{database}"# ---------------------------------------------------------------------------------connection = pymongo.MongoClient(mongodb_info)# 链接
db_name = connection['bigdata_db']
collection_name = db_name[mongodb_table_name]# 查询结果
result_data = collection_name.find()for i in result_data:print('the i is :', i)

3.2、其他

1、新创建的容器没办法使用vim及ll等命令,可进行如下操作:

apt-get update
apt-get install vim

中途遇到y/n直接enter就行。

如果还有其他的系统命令,可以执行apt-get install进行安装。

2、 ll的配置

vim ~/.bashrc# 进入到编辑页面,添加如下内容:
alias ll='ls -l'# 使命令生效
source ~/.bashrc

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

相关文章:

  • 3. WiFi基本原理
  • 详解人工智能(概念、发展、机遇与挑战)
  • flyway的使用
  • web渗透测试漏洞复现:ZooKeeper未授权漏洞复现
  • 算法错题本
  • 绝地求生:爷青回!老版艾伦格回归?雨天雾天的艾伦格你还记得吗?
  • 10秒钟用python接入讯飞星火API(保姆级)
  • 认识什么是Webpack
  • vulhub打靶记录——healthcare
  • css实现更改checkbox的样式;更改checkbox选中后的背景色;更改checkbox选中后的icon
  • 绿联 安装Mysql数据库
  • PyQt ui2py 使用PowerShell将ui文件转为py文件并且将导入模块PyQt或PySide转换为qtpy模块开箱即用
  • javascript中的浅拷贝和深拷贝
  • vue 实现自定义分页打印 window.print
  • 基于 Erlang 的随机账户分配机制
  • 数码论坛系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)电子科技数码爱好者交流信息新闻畅聊讨论评价
  • 时序预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络时间序列预测
  • 探索设计模式的魅力:AI大模型如何赋能C/S模式,开创服务新纪元
  • 2024年NAND价格市场继续上涨
  • 分布式算法 - ZAB算法
  • Java设计之道:色即是空,空即是色
  • 深度学习:基于PyTorch的模型解释工具Captum
  • 公司官网怎么才会被百度收录
  • 机器学习模型——SVM(支持向量机)
  • 服务器CPU使用过高的原因
  • 基于tensorflow和kereas的孪生网络推理图片相似性
  • day4|gin的中间件和路由分组
  • nodejs的express负载均衡
  • 计算机网络-HTTP相关知识-RSA和ECDHE及优化
  • axios 封装 http 请求详解