如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

04-08 1139阅读

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 使用Docker拉取MongoDB镜像
    • 3. 创建并启动MongoDB容器
    • 4. 本地连接测试
    • 5. 公网远程访问本地MongoDB容器
      • 5.1 内网穿透工具安装
      • 5.2 创建远程连接公网地址
      • 5.3 使用固定TCP地址远程访问

        前言

        本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署MongoDB,并结合cpolar内网穿透工具实现公网远程访问本地数据库。

        MongoDB服务端可以运行在Linux、Windows、MacOS平台,可以存储比较复杂的数据类型,支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分功能,还可以对数据建立索引。

        直接实用包管理器安装MongoDB比较复杂,使用Docker安装部署MongoDB则相对简单快速,下面就和大家分享一下具体操作流程。

        如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

        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
        

        如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

        然后执行查看镜像命令:

        sudo docker images
        

        如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

        可以看到成功拉取了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
        

        如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

        参数说明:

        • –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
          

          如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

          4. 本地连接测试

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

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

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

          端口填写:27017

          验证填写:admin

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

          如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

          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 管理界面配置即可。

                如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

                5.2 创建远程连接公网地址

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

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

                  点击创建

                  如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

                  如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

                  如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

                  小结

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

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

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

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

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

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

                    点击保留

                    如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

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

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

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

                    如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

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

                      点击更新

                      如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

                      如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

                      如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

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

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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]