使用docker部署MongoDB数据库

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

一、镜像拉取

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

bash 复制代码
docker pull mongo

二、创建MongoDB容器

2.1 创建宿主机目录

执行如下代码:

bash 复制代码
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容器

执行如下命令:

bash 复制代码
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 启动容器

执行如下命令

bash 复制代码
docker exec -ti mongodb /bin/bash

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

2.4 创建账号

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

进入到admin

c

创建超级管理员账号

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

创建bigdata_db库并创建用户

bash 复制代码
# 创建库
use bigdata_db;

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

三、案例

3.1 python链接mongodb库

python 复制代码
# ------------------------------ 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等命令,可进行如下操作:

bash 复制代码
apt-get update
apt-get install vim

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

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

2、 ll的配置

bash 复制代码
vim ~/.bashrc

# 进入到编辑页面,添加如下内容:
alias ll='ls -l'

# 使命令生效
source ~/.bashrc
相关推荐
程序员在囧途35 分钟前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市
满意的星月1 小时前
基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)
docker·微服务·架构
数据工匠老o1 小时前
连接池配置实战——从“连不上“到“连太多“的完整排查指南
数据库
一只专注api接口开发的技术猿2 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
hh真是个慢性子2 小时前
GaussDB Inside 2.23.01.280 集中式一主一备安装
数据库·database·gaussdb·国产数据库·高斯
沉静的小伙2 小时前
Spring事务
java·数据库·spring
大侠锅锅2 小时前
第 3 篇:节点自动化纳管——从裸机到可管理的 7 步安装流水线
数据库·自动化·边缘计算·iot
笃行3502 小时前
踩坑实战 | MySQL/PostgreSQL 迁移必踩:LEFT JOIN 莫名丢数据,KES 外连接消除避坑指南
数据库
摇滚侠2 小时前
Redis7 零基础到进阶 Linux 离线安装 Redis 09-10
数据库·redis·缓存
赵渝强老师3 小时前
【赵渝强老师】达梦数据库的回滚数据
数据库·达梦数据库·国产数据库