文章目录
【Windows实测】Docker轻松部署VastbaseG100数据库:感谢年迈的魔法师的保姆级教程
一、前言:为什么选择这篇教程?
作为国产分布式数据库VastbaseG100的新手,在Windows环境部署总担心环境适配问题。感谢博客园@年迈的魔法师提供的两篇博客:
《通过Dockerfile创建海量数据库VastbaseG100的docker镜像 》
《docker安装海量数据库VastbaseG100》。
通过Docker方案Windows下的部署难题。本文基于原教程优化,新增Windows专属细节、避坑指南和可视化操作演示,助你30分钟内完成部署!
二、准备工作:Windows专属配置
1. 环境检查(必做!)
- ✅ 安装Docker Desktop for Windows(启用WSL 2,分配至少4GB内存)
- ✅ 下载@年迈的魔法师博主提供的资源包(提取码:2nqq),解压后目录结构:
2. 目录共享设置
打开Docker Desktop → Settings → Resources → File Sharing,添加存放vastbase-docker
的目录(如:D:\docker\vastbase),避免权限问题。
三、实战步骤:图文详解每一步
🔨 1. 构建专属Docker镜像(含许可激活)
1.1 命令行操作(Windows PowerShell)
# 进入存放Dockerfile的目录
cd D:\docker\vastbase
# 构建镜像(注意末尾的点!)thankwhite/vastbase_g100:2.2.15 名称可以替换成自己的
docker build -t thankwhite/vastbase_g100:2.2.15 .
▶️ 关键输出解读:
- 当看到
Successfully tagged thankwhite/vastbase_g100:2.2.15
,表示镜像构建成功 - 耗时约10分钟,若失败检查:
✅ 目录共享是否开启 ✅ license.dat是否存在 ✅ 网络是否稳定
1.2 可视化验证(Docker Desktop)
打开Docker Desktop → Images,找到thankwhite/vastbase_g100
,标签2.2.15
,大小约1.8GB(含许可激活)。
📦 2. 创建并运行数据库容器
2.1 一键启动命令(端口映射5432)
docker run -d --name vastbase \
-p 5432:5432 \
-v D:\docker\vastbase\data:/home/vastbase/data \ # 数据持久化(可选)
thankwhite/vastbase_g100:2.2.15
▶️ 参数说明:
-d
:后台运行容器-p 5432:5432
:映射主机端口到容器端口-v
:挂载数据卷(建议添加,避免容器删除数据丢失)
2.2 验证容器状态
docker ps # 查看运行中容器
# 应看到CONTAINER ID,STATUS为Up
⚙️ 3. 配置远程连接(Windows必改!)
3.1 进入容器终端
docker exec -it vastbase /bin/bash # vastbase为容器名
3.2 修改认证文件(二选一)
# 允许局域网访问(推荐)
echo "host all all 192.168.1.0/24 sha256" >> /home/vastbase/data/vastbase/pg_hba.conf
# 允许所有IP访问(测试用)
echo "host all all 0.0.0.0/0 md5" >> /home/vastbase/data/vastbase/pg_hba.conf
▶️ 避坑提示:
- 必须使用
sha256
或md5
加密,不可用trust
(安全风险) - 编辑后需重启数据库:
vb_ctl restart -D /home/vastbase/data/vastbase
🧪 4. 测试连接:从命令行到图形工具
4.1 命令行验证(容器内)
vsql -d vastbase -p 5432 -U vastbase # 初始用户密码:vastbase
▶️ 成功进入提示符:vastbase=#
4.2 创建测试用户(生产建议)
CREATE USER app_user PASSWORD 'Test@123';
CREATE DATABASE app_db OWNER app_user;
GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;
\q # 退出
4.3 外部连通性测试(Windows PowerShell)
Test-NetConnection -ComputerName localhost -Port 5432
# 若显示TcpTestSucceeded : True,说明端口可达
4.4 图形工具配置(以DBeaver为例)
- 网盘中的
VastbaseG100_jdbc_2.7p_2023060218.jar
- 打开DBeaver → 驱动管理 → 新建一个vastbase的驱动→添加文件VastbaseG100_jdbc_2.7p_2023060218.jar
- 驱动设置:
根据自己的情况设置一下
五、常见问题:Windows用户专属解决方案
问题现象 | 原因分析 | 解决方法 |
---|---|---|
镜像构建失败:No such file | Docker目录未共享 | 检查Docker File Sharing设置 |
5432端口冲突 | 本地已安装PostgreSQL | 停止本地服务,或修改映射端口:-p 5433:5432 |
远程连接失败 | pg_hba.conf未生效 | 确认配置后执行vb_ctl restart |
许可过期(3个月后) | license.dat失效 | 重新构建镜像;联系厂商获取新许可 |
六、总结:致敬开源精神
感谢年迈的魔法师的无私分享,让Windows用户也能轻松体验国产数据库的魅力!本文通过:
- 🐳 Docker封装环境,屏蔽Windows路径烦恼
- 📝 补充新手易错点(如目录共享、权限配置)
- 🔍 可视化操作截图,降低学习门槛
下一步建议:尝试使用docker-compose
实现多节点部署,或探索VastbaseG100的分布式特性。如有疑问,欢迎在评论区交流!
注:本文基于VastbaseG100 2.2.15版本,生产环境请联系厂商获取正式许可及技术支持。
(全文完)
感谢年迈的魔法师
参考:来自博主博客园-年迈的魔法师的两篇博客:
《通过Dockerfile创建海量数据库VastbaseG100的docker镜像 》
《docker安装海量数据库VastbaseG100》
该博主很贴心的给大家准备了需要的文件: 下载镜像、JDBC驱动及其他文件链接
链接:https://pan.baidu.com/s/1VoINht-X-F5i950im-6slA 提取码:2nqq
注意本文主要是讲在Windows 系统里面操作,首先下载安装好dockerdesktop
1.首先大家下载好博主给大家准备的文件:
1.1构建Docker 镜像
当你使用 docker build 命令构建 Docker 镜像时,会在本地 Docker 环境中生成一个新的镜像。例如,你可以使用以下命令来构建镜像:
bash
ocker build -t thankwhite/vastbase_g100:2.2.15 .
其中,thankwhite/vastbase_g100是你为镜像指定的名称,. 表示使用当前目录下的 Dockerfile 进行构建。
构建完成后,你可以使用 docker images 命令查看本地的镜像列表,确认新镜像是否已经生成:
bash
docker images
输出结果中会显示镜像的名称、标签、镜像 ID、创建时间和大小等信息。
在desktop中可以看到构建产物:
这里自己构建镜像是因为需要刷新vastbase的许可信息,为期3个月。
1.2 创建容器
可以使用命令行:
docker run -d --name vastbase
-p 5432:5432
thankwhite/vastbase_g100:2.2.15
2.修改pg_hba.conf文件
2.1进入容器的命令行 docker exec -it vastbase1 /bin/bash
2.2 echo “host all all 192.168.22.0/24 sha256” >> /home/vastbase/data/vastbase/pg_hba.conf
当然可以echo “host all all 0.0.0.0/0 md5” >> /home/vastbase/data/vastbase/pg_hba.conf
这里看个人需求,但是必须有加密条件,不能是trust
也可以直接去编辑该文件vi /home/vastbase/data/vastbase/pg_hba.conf
2.3 修改玩配置需要重启数据库:vb_ctl restart -D /home/vastbase/data/vastbase
3.进入数据创建用户测试数据等
3.1
连接数据库 vsql -d vastbase -p 5432
3.2
CREATE USER vastbase_oracle PASSWORD ‘Test@123’;
CREATE DATABASE vastbase_oracle OWNER vastbase_oracle ENCODING ‘UTF-8’ template = template0;
GRANT ALL PRIVILEGES TO vastbase_oracle;
这样我们之后可以使用vsql -U vastbase_oracle -d vastbase_oracle -W Test@123来登录
4.验证连通性
可以使用powershell 执行Test-NetConnection -ComputerName localhost -Port 5432 看看5432的连通性。
如果之前安装过pg数据端口也设置的是5432,就把之前的pg的server关闭,或者修改我们容器的端口映射。
ComputerName : localhost
RemoteAddress : 127.0.0.1
RemotePort : 5432
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : 127.0.0.1
TcpTestSucceeded : True
如果TcpTestSucceeded : True 说明可以用
我们可以使用Navicat创建连接,使用pg小象数据库社区版本就可以了。
当然也可以使用年迈的魔法师说的DBeaver方式,需要使用网盘里面的jdbc的文件,自己配置一个新的驱动: