如何在Ubuntu系统使用docker部署DbGate容器并发布至公网可访问

news2025/2/26 14:56:23

文章目录

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

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

现在主流的数据库管理工具有Navicat、DBeaver、RedisDesktop、SQLyog等,今天要介绍的DbGate支持MySQL、MongoDB、Redis、SQLite等多种数据库,可以在Linux、Windows、MacOS、Web浏览器等平台运行,遵循MIT开源协议,内置丰富的插件,模式比较工具,图表可视化等功能。

而将它结合内网穿透工具使用时,可以实现即使身在异地,依然可以随时随地在公网环境访问本地的数据库,让开发者可以更方便快捷的查询数据。使用Docker安装部署DbGate也非常简单快速,下面就和大家分享一下具体操作流程。

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拉取DbGate镜像

sudo docker pull dbgate/dbgate

image-20240306142128770

然后执行查看镜像命令:

sudo docker images

image-20240306142307185

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

3. 创建并启动DbGate容器

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

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

sudo docker run -d --name mydbgate --restart always -p 3000:3000 dbgate/dbgate

1709706641142

参数说明:

  • –name mydbgate:设置本例容器名称为mydbgate,大家可以自己起名。
  • **–restart always:**在容器退出时总是重启容器
  • -p 3000:3000: 端口进行映射,将本地3000端口映射到容器内部的3000端口。
  • **-d ** :设置容器在在后台运行。

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

sudo docker ps

image-20240306143444323

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

4. 本地连接测试

OK,经过以上过程,Docker部署 DbGate 就完成了,现在我们可以通过任意浏览器进行连接测试。

在浏览器输入主机ip:3000即可,显示下图即为连接成功!

image-20240306143824038

点击新建链接后选择数据库类型,输入数据库ip、端口、用户名、密码登信息即可管理对应数据库。

image-20240306144433780

image-20240306144621604

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

不过我们目前只能在本地连接刚刚使用docker部署的DbGate服务,如果身在异地,想要远程访问在本地部署的DbGate容器,但又没有公网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管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

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

点击创建

image-20240306150918123

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20240306151114952

如下图所示,成功实现在公网环境访问本地部署的DbGate服务!

image-20240306153310016

小结

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

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

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

5.3 使用固定公网地址远程访问

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是mydbgate,大家也可以自定义喜欢的名称。

image-20240306153501939

保留成功后复制保留成功的二级子域名的名称:mydbgate,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道dbgate,点击右侧的编辑:

image-20240306154801828

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:mydbgate
  • 地区:选择China VIP

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240306153709425

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20240306153817124

最后,我们使用任意一个固定公网地址在浏览器访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地部署的DbGate服务了!

image-20240306154509329

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue实现从本地上传头像功能

上传头像&#xff1a; <template><div><el-card class"box-card"><div slot"header" class"clearfix"><span>更换头像</span></div><div><!-- 图片、用来展示用户选择的头像 --><img…

2024年国内最受欢迎的10大热门城市

如果你还没有计划好2024年的旅游行程&#xff0c;不妨考虑这些热门城市&#xff0c;去感受它们的魅力吧&#xff01;在时光流转的车轮下&#xff0c;中国城市风貌日新月异&#xff0c;各具特色的城市正以其独特的魅力吸引着国内外的目光。 近日&#xff0c;依据大数据及网络热度…

功能强大的开源数据中台系统 DataCap 2024.03.1 发布

推荐一套基于 SpringBoot 开发的简单、易用的开源权限管理平台&#xff0c;建议下载使用: https://github.com/devlive-community/authx 推荐一套为 Java 开发人员提供方便易用的 SDK 来与目前提供服务的的 Open AI 进行交互组件&#xff1a;https://github.com/devlive-commun…

【next】Extra attributes from the server: mpa-version,mpa-extension-id

layout下面的标签添加 suppressHydrationWarning{true}

头歌-机器学习 第12次实验 Adaboost算法

第1关&#xff1a;什么是集成学习 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.什么是集成学习。 什么是集成学习 集成学习方法是一种常用的机器学习方法&#xff0c;分为b…

vue3新手笔记

setup&#xff08;&#xff09;{}函数&#xff0c;是启动页面后&#xff0c;自动执行的一个函数。所有数据&#xff08;常量、变量&#xff09;、函数等等&#xff0c;都要return 出去。 ref函数(可用于基本数据类型&#xff0c;也可以用于复杂数据类型)&#xff1a;让页面上的…

【QT入门】 Qt自定义控件与样式设计之QSlider用法及qss

往期回顾&#xff1a; 【QT入门】 Qt自定义控件与样式设计之QCheckBox qss实现按钮开关-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QPushButton点击按钮弹出菜单-CSDN博客 【QT入门】Qt自定义控件与样式设计之QProgressBar用法及qss-CSDN博客 【QT入门】 Qt自定义控件与样式…

MPT - 原理及应用

前文回顾 Merkle原理及应用Merkle代码实现Patricia原理及应用Patricia代码实现 什么是MPT&#xff08;Merkle Patricia Tree&#xff09;树 MPT树是一种数据结构&#xff0c;用于在以太坊区块链中高效地存储和检索账户状态、交易历史和其他重要数据。MPT树的设计旨在结合Merk…

激光点云-无监督语义分割方法

深度学习和人工智能是点云分割的良好且强大的解决方案,但语义分割对于数据处理方式能否更加简单和快速?如今,我们仍然关注深度学习,但人工智能是以数据为中心的。生成这些数据是一个劳动密集型的解决方案,我们是否可以尝试采用简单的无监督语义分割来有效地“预标记”点云…

【noVNC】使用noVNC实现浏览器远程VNC(基于web的远程桌面)

一、操作的环境 windows 10系统乌班图 Ubuntu 22 二、noVNC 部署方式 原理&#xff1a;开启 Websockify 代理来做 WebSocket 和 TCP Socket 之间的转换 2.1 noVNC和VNC服务端同一台机器 使用方式&#xff0c;查看另一篇博文 &#xff1a;【noVNC】使用noVNC实现浏览器网页访…

基于8086方波信号发生器仿真设计

**单片机设计介绍&#xff0c;基于8086方波信号发生器仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 二、功能设计 文件夹内包含工程文件&#xff0c;可直接运行或者二次开发&#xff1b; 此设计可作为毕业设计和课程…

从“看见”工程活动和研发模式开始,提升团队工程交付能力

提升团队工程交付能力&#xff0c;从“看见”工程活动和研发模式开始 理想中的研发团队应当具有以下特征&#xff1a; 总是工作在最高优先级的事项上理想的研发团队能够识别并始终集中精力在当前最紧迫和最有价值的任务上。这需要团队具备出色的项目管理能力和决策能力&#x…

andorid 矢量图fillColor设置无效

问题&#xff1a;andorid 矢量图fillColor设置无效 解决&#xff1a;去掉如下 android:tint一行

考研数学|全程跟汤家凤,还是强化换张宇?

考研高数的复习策略因人而异&#xff0c;选择跟哪位老师的课程取决于个人的学习习惯、基础水平和目标院校的要求。 汤家凤老师的教学特点是注重基础知识的讲解和概念的理解&#xff0c;适合基础薄弱或者零基础的考生。他的课程通常从基础概念讲起&#xff0c;逐步深入&#xf…

手动实现简易版RPC(上)

手动实现简易版RPC(上) 前言 什么是RPC&#xff1f;它的原理是什么&#xff1f;它有什么特点&#xff1f;如果让你实现一个RPC框架&#xff0c;你会如何是实现&#xff1f;带着这些问题&#xff0c;开始今天的学习。 本文主要介绍RPC概述以及一些关于RPC的知识&#xff0c;为…

前端代码规范系列,今天聊聊代码注释

开始之前&#xff0c;介绍一下​最近很火的开源技术&#xff0c;低代码。 作为一种软件开发技术逐渐进入了人们的视角里&#xff0c;它利用自身独特的优势占领市场一角——让使用者可以通过可视化的方式&#xff0c;以更少的编码&#xff0c;更快速地构建和交付应用软件&#…

一文带你了解Material, Texture Mapping, Shading, Shader

作者&#xff1a;caven chen 在计算机图形学和三维开发过程中&#xff0c;有几个容易混淆的概念。今天我们来一举拿下。 又可以学习新的知识啦。冲鸭。。。。。。 基础概念 首先我们来介绍一些基础概念: 英文 中文 本质 释义 Material 材质 数据集 表现物体对光的交互…

勒索软件漏洞?在不支付赎金的情况下解密文件

概述 在上一篇文章中&#xff0c;笔者对BianLian勒索软件进行了研究剖析&#xff0c;并且尝试模拟构建了一款针对BianLian勒索软件的解密工具&#xff0c;研究分析过程中&#xff0c;笔者感觉构建勒索软件的解密工具还挺有成就感&#xff0c;因此&#xff0c;笔者准备再找一款…

Elasticsearch8.x 设置密码

文章目录 一、环境说明二、使用elasticsearch-reset-password工具修改1、elasticsearch-reset-password工具位置2、设置密码 一、环境说明 elasticsearch版本&#xff1a;8.13.0 系统版本&#xff1a;Ubuntu 18.04.6 二、使用elasticsearch-reset-password工具修改 1、elast…

Mac环境 llamafile 部署大型语言模型LLM

文章目录 Github官网本地部署 llamafile 是一种可在你自己的电脑上运行的可执行大型语言模型&#xff08;LLM&#xff09;&#xff0c;它包含了给定的开放 LLM 的权重&#xff0c;以及运行该模型所需的一切。让人惊喜的是&#xff0c;你无需进行任何安装或配置。 Github https…