使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/512697.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java头歌-JDBC基础编程练习

第1关:JDBC更新员工密码 package step1;import java.sql.*;public class UpdatePass {// 修改数据public static void updateDB() {/********* Begin *********/// 第一步:加载驱动try {Class.forName("com.mysql.jdbc.Driver");} catch (Clas…

一种遥感影像多类变化检测方法

多任务学习孪生网络的遥感影像多类变化检测 马惠1, 刘波2, 杜世宏2 1.河南省国土空间调查规划院,郑州 450016 2.北京大学遥感与地理信息系统研究所,北京 100871 摘要: 精确掌握土地覆盖/利用的变化及变化类型对国土空间规划、生态环境监测、灾害评估等有着重要意义,然而现有…

SRC实战-cookie注入漏洞

谷歌语法-信息收集 1.查找带有ID传参的网站(可以查找sql注入漏洞) inurl:asp idxx 2.查找网站后台(多数有登陆框,可以查找弱口令,暴力破解等漏洞) site:http://xxxx.com “admin” site:http://xx.com int…

ISOLAR AUTOSAR 组件供需端口图标

软件组件端口类型分为供型端口(Provision Port)、需型端口(Required Port)、和供需型端口(Provision Required Port),其中供需性不常用。 其中又分为S/R 发送者、接受者接口,C/S 客户…

【CANN训练营笔记】AscendCL图片分类应用(C++实现)

样例介绍 基于PyTorch框架的ResNet50模型,对*.jpg图片分类,输出各图片所属分类的编号、名称。 环境介绍 华为云AI1s CPU:Intel Xeon Gold 6278C CPU 2.60GHz 内存:8G NPU:Ascend 310 环境准备 下载驱动 wget ht…

STM32学习笔记(11_2)- W25Q64简介和工作原理

无人问津也好,技不如人也罢,都应静下心来,去做该做的事。 最近在学STM32,所以也开贴记录一下主要内容,省的过目即忘。视频教程为江科大(改名江协科技),网站jiangxiekeji.com 本期学…

鸿蒙开发(七)-UIAbility启动模式

鸿蒙开发(七)-启动模式 根据代码中定义,UIAbility的启动模式有以下几种: "launchType": {"description": "Indicates the boot mode of ability.","type": "string","enum": ["standard",…

高效准确!指甲剪盖片视觉检测技术解密

指甲剪的盖片是指指甲剪的一端,通常用来盖住另一端的刀刃部分。指甲剪盖片是指甲剪的重要部分,除了保护刀刃外,还起到美观和便捷的作用。正确使用和保养指甲剪盖片可以延长指甲剪的使用寿命。 本案是对指甲剪盖片最大尺寸长75mm*宽10mm*高3mm…

采用大语言模型进行查询重写——Query Rewriting via Large Language Models

文章:Query Rewriting via Large Language Models,https://arxiv.org/abs/2403.09060 摘要 查询重写是在将查询传递给查询优化器之前处理编写不良的查询的最有效技术之一。 手动重写不可扩展,因为它容易出错并且需要深厚的专业知识。 类似地…

深入解析:LLM在软件代码安全领域的实践应用

一、软件安全静态检测技术 随着数字化时代的到来,软件将成为构建业务数字化的基础设施,软件的安全将成为构筑数字世界的基础。现实中正是由于软件自身存在安全漏洞,才给不法分子可乘之机利用漏洞实施网络犯罪行为。 静态分析技术是指在不运行…

1379. 找出克隆二叉树中的相同节点

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始…

Lesson 9 Transformer

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了seq2seq model简介,以及应用,架构(包括encoder和decoder)。 什么是seq2seq sequence-to-sequence(seq2seq) 比…

每日一题(leetcode2952):添加硬币最小数量 初识贪心算法

这道题如果整体去思考,情况会比较复杂。因此我们考虑使用贪心算法。 1 我们可以假定一个X,认为[1,X-1]区间的金额都可以取到,不断去扩张X直到大于target。(这里为什么要用[1,X-1]而不是[1,X],总的来说是方便,潜在思想…

香港科技大学广州|智能制造学域博士招生宣讲会—吉林大学专场

时间:2024年4月12日(星期五)14:00 地点:吉林大学前卫校区敬信教学楼-A107 报名链接:https://www.wjx.top/vm/mmukLPC.aspx# 宣讲嘉宾:汤凯 教授/学域主任 跨学科重点研究领域 •工业4.0 •智能传感器、…

LTD重新定义MQL流程,营销枢纽助力销售线索全周期高转化

随着数字化技术的不断发展,客户的信息获取渠道发生了比较大的变化。相较于传统模式,客户更加青睐于通过在线平台来进行购买决策。所以,企业的获客思维也需要改变,通过建设独立站,将其作为获客入口进行入站引流。那么&a…

基于深度学习的机场航拍小目标检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:在本博客中介绍了基于YOLOv8/v7/v6/v5的机场航拍小目标检测系统。该系统的核心技术是采用YOLOv8,并整合了YOLOv7、YOLOv6、YOLOv5算法,从而进行性能指标的综合对比。我们详细介绍了国内外在机场航拍小目标检测领域的研究现状、数据集处理…

在哪申请免费IP地址证书

IP证书,也被称为IP SSL证书,是一种特殊的SSL证书,不同于传统的域名验证(DV)证书,它是通过验证公网IP地址而不是域名来确保安全连接。这种证书是用于保护IP地址,并在安装后起到加密作用。 申请条…

物联网实战--入门篇之(四)嵌入式-UART驱动

目录 一、串口简介 二、串口驱动设计 三、串口发送 四、串口接收处理 五、PM2.5数据接收处理 六、printf重定义 七、总结 一、串口简介 串口在单片机的开发中属于非常常用的外设,最基本的都会预留一个调试串口用来输出调试信息,串口时序这里就不谈…

电商系列之风控安全

> 插:AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家…

Verilog语法回顾--用户定义原语

目录 用户定义原语 UDP定义 UDP状态表 状态表符号 组合UDP 电平敏感UDP 沿敏感时序UDP 参考《Verilog 编程艺术》魏家明著 用户定义原语 用户定义原语(User-defined primitive,UDP)是一种模拟硬件技术,可以通过设计新的原…