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 主要特点
-
与您的数据对话
- 无需手动编写复杂 SQL 查询,只需用自然语言提问即可执行查询和管理数据。
- 集成 Ollama、ChatGPT、Anthropic 等 AI 模型,实现智能交互式数据探索。
-
增强用户体验
- 界面干净直观,易于导航,即使是新手也能轻松上手。
-
卓越的性能
- 基于 GoLang 构建,提供快速响应和高效运行。
- 前端表格虚拟化技术提升大数据集的浏览体验。
-
模式可视化
- 提供交互式图表,帮助用户轻松理解数据库结构。
-
原地编辑与预览
- 支持在界面上直接编辑和预览数据,提高操作效率。
-
广泛数据库支持
- 兼容 PostgreSQL、MySQL、SQLite3、MongoDB、Redis、MariaDB、ElasticSearch 和 ClickHouse。
-
便签板(Notebook-style Query Interface)
- 类似 Jupyter Notebook 的界面,用于执行和记录数据库查询,适合数据分析和协作。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 28.1.1 | WhoDB |
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
:MariadbHost Name
:192.168.3.152(数据库服务器IP地址)Username
:root ( 数据库用户)Password
:填写测试数据库密码Database
:这里直接为空,也可以填写已经创建的数据库库名。Port
: 数据库连接端口。默认3306,这里修改为3776
填写完毕后,确认连接即可。
7.2 连接效果
连接成功后,效果如下所示。具体使用方法,可参考官方使用文档:https://whodb.com/docs/。
八、总结
通过本次实践,我们成功部署并体验了 WhoDB 这款轻量级、功能强大的数据库管理工具。WhoDB 不仅支持多种数据库类型,还集成了 AI 对话能力,极大简化了数据查询与管理的操作门槛。其简洁直观的界面和高效的性能表现,使其适用于从开发调试到企业级应用的多种场景。未来在实际项目中,WhoDB 有望成为提升数据库操作效率的有力工具。