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

MongoDB数据存储界的瑞士军刀:cpolar内网穿透实验室第513号挑战

在这里插入图片描述

软件名称:MongoDB
操作系统支持:Linux、Windows、macOS(Docker版全平台通用!)
软件介绍:

MongoDB是一个基于分布式架构的NoSQL数据库,擅长处理复杂数据类型(如嵌套对象、数组),查询语言强大到能实现类似关系型数据库的单表操作。用它就像在玩“动态表格”,可以灵活存储JSON格式的数据,且支持索引加速检索——比Excel聪明100倍!

在这里插入图片描述

MongoDB谁在用?

  • 开发者:需要快速搭建灵活数据模型的Web应用或API。
  • 数据分析团队:处理半结构化/非结构化数据(如日志、实时监控)。
  • 学生党:想“玩转”NoSQL但被传统安装流程劝退的人。
为什么用?
MongoDB × Docker = “数据管理界的随身瑞士军刀”**

在这里插入图片描述

核心功能亮点:
  • 灵活的数据模型:告别僵化的表结构,直接存JSON对象(如用户信息+订单详情嵌套)。
  • 强大的查询语言:支持类似SQL的聚合操作、条件筛选、分组统计。
  • 索引自由度拉满:不只是主键索引,还能给数组字段、地理位置甚至表达式建索引!

MongoDB的爽点

  • 用嵌套文档存储商品信息,配合复合索引(如{"color": 1, "size": 1}),秒级返回所有符合“红色L码”的库存。
  • 用时间戳索引快速筛选最近5分钟的数据,并通过聚合管道统计平均温度、异常波动——比Excel函数快100倍!

在这里插入图片描述

为什么需要cpolar?

cpolar内网穿透——让数据库“上天入地”自由访问

  • 开发测试时,本地MongoDB默认只监听localhost,外网无法直接连接。
  • 团队协作时,想远程调试数据却苦于公司防火墙限制?
cpolar将内网穿透简单到只要三步!

1.下载安装 → 2. 输入要穿透的端口号 → 3. 立刻获得专属访问链接。

MongoDB + Docker + Cpolar = 开发者的“三件套神器”

  • 为什么这套组合能打?
    • Docker:安装像搭积木,环境零冲突。
    • MongoDB:数据存储灵活,查询能力逆天。
    • Cpolar:打破局域网枷锁,全球随时访问!
  • 一句话总结:“用Docker玩转部署,靠MongoDB征服数据,拿cpolar解锁自由——这才是现代开发的快乐三角!”

在这里插入图片描述

现代开发得快乐三角介绍完了,当然还有告诉各位如何安装喽。要不然不久成了光说不练得假把式!
教程新鲜出炉,看下面👇

1. 安装Docker

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。

在终端中执行下方命令:

添加Docker源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装Dokcer包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通过运行映像来验证 Docker 引擎安装是否成功

sudo docker run hello-world

2. 使用Docker拉取MongoDB镜像

sudo docker pull mongo

image-20240221134922055

然后执行查看镜像命令:

sudo docker images

image-20240221135030232

可以看到成功拉取了MongoDB镜像。

3. 创建并启动MongoDB容器

成功拉取MongoDB镜像后,我们可以使用该镜像创建并运行一个MongoDB容器。

首先在宿主机上创建存储目录/docker_mount/mongodb/data,用于持久化MongoDB数据。

您可以使用以下命令进行创建:

sudo mkdir -p /docker_mount/mongodb/data

然后在终端执行以下命令运行容器:

sudo docker run -d -p 27017:27017 --name mongodb -v /docker_mount/mongodb/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=password mongo

1708500820559

参数说明:

  • –name excalidraw:本例容器名称为mongodb,大家可以自己起名。
  • **-e MONGO_INITDB_ROOT_USERNAME=root:**初始化一个root角色的用户root
  • **-e MONGO_INITDB_ROOT_PASSWORD=password:**密码是password,大家可以自己设置。
  • -p 27017:27017: 端口进行映射,将本地27017端口映射到容器内部的27017端口。
  • **-d ** :设置容器在在后台一直运行。

然后执行下方命令查看容器是否正在运行:

sudo docker ps

image-20240221153852667

可以看到刚才创建的MongoDB容器正在运行中。

4. 本地连接测试

OK,经过以上过程,docker部署 mongodb 就完成了,现在我们可以通过Navicat进行连接测试。

我使用的 Navicat 的版本是 16,如下图新建 mongodb 的连接:

主机填写宿主机ip,大家可以在终端中输入 ip addr命令进行查看。

端口填写:27017

验证填写:admin

用户名和密码填写刚才启动容器时设置的账号密码:root和password

image-20240221154325747

然后点击测试连接,可以看到连接成功!

5. 公网远程访问本地MongoDB容器

不过我们目前只能在本地连接刚刚使用docker部署的MongoDB服务,如果身在异地,想要远程访问在本地部署的MongoDB容器,但又没有公网ip怎么办呢?

我们可以使用cpolar内网穿透工具来实现无公网ip环境下的远程访问需求。

5.1 内网穿透工具安装

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

image-20230831171159175

5.2 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:mongo1
  • 协议:tcp
  • 本地地址:27017
  • 域名类型:随机域名
  • 地区:选择China VIP

点击创建

image-20240221160200575

然后打开在线隧道列表,查看并且复制tcp协议的公网地址,注意tcp://无需复制

image-20240221160228682

打开navicat或者其他连接工具,主机选项输入上面我们cpolar中创建的公网地址,端口号对应地址冒号后面生成的公网端口号。

image-20240221160051207

然后点击测试连接,可以看到连接成功!

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的TCP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地MongoDB服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的TCP地址来远程访问。

5.3 使用固定TCP地址远程访问

登录cpolar官网后台,点击左侧的预留,找到保留的tcp地址,我们来为远程连接MongoDB数据库保留一个固定tcp地址。

  • 地区:选择China vip
  • 描述:即备注,可自定义

点击保留

image-20240221160835462

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

本例中地址为:6.tcp.vip.cpolar.cn:13644

然后在浏览器上访问Linux局域网ip地址+:9200端口,登录cpolar web ui管理界面。

点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的远程数据库隧道,点击右侧的编辑

image-20240221161016132

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

image-20240221161130133

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

image-20240221161207657

打开连接工具,输入官网保留的固定tcp地址,端口为地址后面对应的公网端口号,点击测试连接。

image-20240221161332281

出现连接成功表示成功,现在这个公网地址不会再随机变化,只要保持隧道正常在线,我们在外就可以通过这个公网地址远程连接到局域网内的MongoDB数据库。

以上就是如何在Ubuntu系统使用Docker部署MongoDB容器,并结合cpolar内网穿透工具实现公网远程访问内网本地服务的全部流程,感谢您的观看。

http://www.dtcms.com/a/319703.html

相关文章:

  • IDEA-Research推出的一系列检测、分割模型:从DINO(改进版DETR)、Grounding Dino、DINO-X到Grounded SAM2
  • 串联所有单词的子串-leetcode
  • 计算机基础·linux系统
  • Linux线程学习
  • pytorch学习笔记-最大池化maxpooling的使用、搭建多层网络并验证、sequential的使用
  • golang的面向对象编程,struct的使用
  • 2.8 逻辑符号
  • Linux怎么查看时区信息?(Linux时区)(tzselect)
  • Java中接口与抽象类
  • 处理失败: module ‘fitz‘ has no attribute ‘open‘
  • 传统防火墙与下一代防火墙
  • 华为 2025 校招目标院校
  • 【2025最新】在 macOS 上构建 Flutter iOS 应用
  • 嵌入式学习---在 Linux 下的 C 语言学习 Day10
  • 可执行文件的生成与加载执行
  • 超高车辆如何影响城市立交隧道安全?预警系统如何应对?
  • [论文阅读] 软件工程 | 软件工程中的同理心:表现、动机与影响因素解析
  • oracle 11G安装大概率遇到问题
  • 大文件断点续传(vue+springboot+mysql)
  • Failed to restart docker.service: Unit docker.service is masked.
  • PostgreSQL 数据库 设置90天密码过期时间的完整方案
  • 读取了错误数据导致STM32 单片机Hard Fault
  • 智能升级革命:Deepoc具身模型开发板如何让传统除草机器人拥有“认知大脑”
  • 分布式微服务--GateWay(过滤器及使用Gateway注意点)
  • 翻译模型(TM):基于短语的统计翻译模型(PBSMT)的构建
  • C++语法与面向对象特性(2)
  • PyTorch如何实现婴儿哭声检测和识别
  • 目标检测数据集 - 自动驾驶场景道路异常检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • 接口自动化-pytest
  • OpenAI 开源模型 gpt-oss 正式上线微软 Foundry 平台