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

Docker实践:使用Docker部署WhoDB开源轻量级数据库管理工具

Docker实践:使用Docker部署WhoDB开源轻量级数据库管理工具

  • 一、WhoDB介绍
    • 1.1 WhoDB 简介
    • 1.2 主要特点
  • 二、本次实践规划
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、下载WhoDB镜像
  • 五、部署WhoDB应用
    • 5.1 创建部署目录
    • 5.2 编辑部署文件
    • 5.3 创建WhoDB容器
    • 5.4 查看WhoDB容器状态
    • 5.5 查看WhoDB容器日志
  • 六、访问WhoDB服务
    • 6.1 访问初始页
    • 6.2 连接SQLite
  • 七、连接Mariadb 数据库
    • 7.1 填写数据库信息
    • 7.2 连接效果
  • 八、总结

一、WhoDB介绍

1.1 WhoDB 简介

WhoDB 是一个轻量级(<50MB)、强大且用户友好的数据库管理工具,旨在简化数据库管理和探索任务。它结合了 Adminer 的简洁性,并通过现代的用户体验和性能优化进行了增强。WhoDB 采用 GoLang 构建,确保了卓越的速度和效率,适用于小型项目和复杂的 enterprise 级系统。WhoDB 的一大亮点是其与自然语言处理技术(如 Ollama、ChatGPT 和 Anthropic)的集成,使用户能够使用自然语言与数据进行交互,而无需编写复杂的 SQL 查询。

1.2 主要特点

  1. 与您的数据对话

    • 无需手动编写复杂 SQL 查询,只需用自然语言提问即可执行查询和管理数据。
    • 集成 Ollama、ChatGPT、Anthropic 等 AI 模型,实现智能交互式数据探索。
  2. 增强用户体验

    • 界面干净直观,易于导航,即使是新手也能轻松上手。
  3. 卓越的性能

    • 基于 GoLang 构建,提供快速响应和高效运行。
    • 前端表格虚拟化技术提升大数据集的浏览体验。
  4. 模式可视化

    • 提供交互式图表,帮助用户轻松理解数据库结构。
  5. 原地编辑与预览

    • 支持在界面上直接编辑和预览数据,提高操作效率。
  6. 广泛数据库支持

    • 兼容 PostgreSQL、MySQL、SQLite3、MongoDB、Redis、MariaDB、ElasticSearch 和 ClickHouse。
  7. 便签板(Notebook-style Query Interface)

    • 类似 Jupyter Notebook 的界面,用于执行和记录数据库查询,适合数据分析和协作。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。

hostnameIP地址操作系统版本Docker版本部署项目
jeven01192.168.3.88Ubuntu 22.04.1 LTS28.1.1WhoDB

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署WhoDB开源轻量级数据库管理工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2025-05-28 08:09:06 UTC; 3 days ago
TriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 871 (dockerd)Tasks: 28Memory: 170.9MCPU: 1min 18.962sCGroup: /system.slice/docker.service├─  871 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

  • 检查Docker版本
root@jeven01:~#  docker -v
Docker version 28.1.1, build 4eba377

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.35.1

四、下载WhoDB镜像

执行以下命令,拉取WhoDB容器镜像,我们使用跟的是当前最新版本0.53.0

root@jeven01:~# docker pull clidey/whodb:0.53.0
0.53.0: Pulling from clidey/whodb
f18232174bc9: Already exists
5c454188a76a: Pull complete
Digest: sha256:b8bf8ef80a054dfd03c163b09e4ab9fd3c754516529c132f6abe7d60fcee5cf6
Status: Downloaded newer image for clidey/whodb:0.53.0
docker.io/clidey/whodb:0.53.0

五、部署WhoDB应用

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/whodb  &&  cd /data/whodb
  • 创建空的 sample.db文件
touch ./sample.db

5.2 编辑部署文件

如果使用docker-cli部署,可使用以下命令。(可选)

docker run -d \--restart unless-stopped \--name whodb \-p 7860:8080 \clidey/whodb

在`部署目录下,创建docker-compose.yaml文件,如下所示:

vim docker-compose.yaml
version: "3.8"
services:whodb:container_name: whodbrestart: alwaysimage: clidey/whodb:0.53.0volumes: # (optional for sqlite)- ./sample.db:/db/sample.dbports:- "7860:8080"

5.3 创建WhoDB容器

执行以下命令,创建WhoDB容器。

root@jeven01:/data/whodb# docker compose up -d
WARN[0000] /data/whodb/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 2/2? Network whodb_default  Created                                                                                                             0.1s? Container whodb        Started                                                                                                             0.6s

在这里插入图片描述

5.4 查看WhoDB容器状态

检查WhoDB容器状态状态,确保WhoDB容器正常启动。

root@jeven01:/data/whodb# docker compose ps
WARN[0000] /data/whodb/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME      IMAGE                 COMMAND   SERVICE   CREATED          STATUS          PORTS
whodb     clidey/whodb:0.53.0   "/core"   whodb     43 seconds ago   Up 42 seconds   0.0.0.0:7860->8080/tcp, [::]:7860->8080/tcp

5.5 查看WhoDB容器日志

检查WhoDB容器日志,确保WhoDB服务正常运行。

root@jeven01:/data/whodb# docker compose logs
WARN[0000] /data/whodb/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
whodb  | time="2025-05-31T12:28:29Z" level=info msg="Starting WhoDB..."
whodb  | time="2025-05-31T12:28:29Z" level=info msg="Almost there..."
whodb  | time="2025-05-31T12:28:31Z" level=info msg="?? Welcome to WhoDB! ??"
whodb  | time="2025-05-31T12:28:31Z" level=info msg="Get started by visiting:"
whodb  | time="2025-05-31T12:28:31Z" level=info msg="http://0.0.0.0:8080"
whodb  | time="2025-05-31T12:28:31Z" level=info msg="Explore and enjoy working with your databases!"

在这里插入图片描述

六、访问WhoDB服务

6.1 访问初始页

浏览器地址: http://<个人的服务器IP>:7860,访问WhoDB服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 连接SQLite

我们在数据库类型中选择 Sqlite3,数据库为本地挂载的 sample.db

在这里插入图片描述

点击Submit 提交,确认连接后效果如下所示:

在这里插入图片描述

七、连接Mariadb 数据库

7.1 填写数据库信息

点击 Advance 选项,展开更多设置。数据库配置信息可参考以下:

  • Database Type:Mariadb
  • Host Name:192.168.3.152(数据库服务器IP地址)
  • Username:root ( 数据库用户)
  • Password:填写测试数据库密码
  • Database:这里直接为空,也可以填写已经创建的数据库库名。
  • Port: 数据库连接端口。默认3306,这里修改为3776
    填写完毕后,确认连接即可。

在这里插入图片描述

7.2 连接效果

连接成功后,效果如下所示。具体使用方法,可参考官方使用文档:https://whodb.com/docs/。

在这里插入图片描述

八、总结

通过本次实践,我们成功部署并体验了 WhoDB 这款轻量级、功能强大的数据库管理工具。WhoDB 不仅支持多种数据库类型,还集成了 AI 对话能力,极大简化了数据查询与管理的操作门槛。其简洁直观的界面和高效的性能表现,使其适用于从开发调试到企业级应用的多种场景。未来在实际项目中,WhoDB 有望成为提升数据库操作效率的有力工具。


http://www.lryc.cn/news/593962.html

相关文章:

  • 传输层协议 TCP
  • Java什么是原子性
  • Java SpringBoot 对接FreeSwitch
  • AtCoder Beginner Contest 415
  • Web-SQL注入数据库类型用户权限架构分层符号干扰利用过程发现思路
  • 向日葵远程命令执行漏洞
  • 《深入C++多态机制:从虚函数表到运行时类型识别》​
  • IDEA中使用Tomcat两种方式
  • C51单片机学习笔记——定时器与中断
  • API接口签名和敏感信息加密使用国密SM方案
  • 上电复位断言的自动化
  • go-redis Pipeline 与事务
  • 《计算机网络》实验报告五 DNS协议分析与测量
  • Dockerfile配置基于 Python 的 Web 应用镜像
  • 随着GPT-5测试中泄露OpenAI 预计将很快发布 揭秘GPT-5冲击波:OpenAI如何颠覆AI战场,碾压谷歌和Claude?
  • 单片机启动流程和启动文件详解
  • 数组算法之【合并两个有序数组】
  • 嵌入式硬件篇---舵机(示波器)
  • 设备健康管理实施案例:从技术架构到落地效果的全栈解析
  • 嵌入式硬件篇---机械臂运动学解算(3自由度)
  • 【MySQL】索引中的页以及索引的分类
  • 全面解析MySQL(2)——CRUD基础
  • RabbitMQ面试精讲 Day 4:Queue属性与消息特性
  • UDP中的单播,多播,广播
  • RabbitMQ核心组件浅析:从Producer到Consumer
  • 30个常用的Linux命令汇总和实战场景示例
  • 使用 Pyecharts 绘制精美饼状图:从基础到高级技巧
  • nginx定期清理日志
  • Node.js:函数、路由、全局对象
  • 数据并表技术全面指南:从基础JOIN到分布式数据融合