文章目录
一、前言
openGauss 是一款开源的关系型数据库管理系统,由华为开源并持续发展。它具备高性能、高安全性和高可用性等特点,适用于企业级应用和大规模数据处理场景。本文将带你通过 Docker 和 docker-compose 快速搭建一个本地的 openGauss 开发环境,无需复杂的系统依赖安装,一键启动!
二、前置条件
在开始之前,请确保你的系统已安装以下工具:
Docker 20.10+
Docker Compose 2.0+
你可以通过以下命令验证是否已安装:
bash
docker --version
# 示例输出:Docker version 20.10.0, build 7287ab3
docker-compose --version
# 示例输出:Docker Compose version v2.3.2
三、导入镜像
1、下载镜像
镜像下载地址:https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.2/openGauss-Docker-6.0.2-x86_64.tar
2、导入镜像
bash
## 上传镜像至服务器
## 导入镜像:
docker load -i openGauss-Docker-6.0.2-x86_64.tar
## 查看镜像
docker images
## 示例输出
REPOSITORY TAG IMAGE ID CREATED SIZE
opengauss 6.0.2 a93dae2ccb08 3 months ago 1.61GB
四、配置docker-compose
创建docker-compose文件
bash
mkdir -p /home/opengauss
cd /home/opengauss
vi docker-compose.yml
## 添加如下内容
version: '3.8'
services:
opengauss:
image: opengauss:6.0.2
container_name: opengauss
restart: always
environment:
- GS_PASSWORD=YourStrongPassword123! # 设置数据库管理员密码(必须满足复杂度要求)
ports:
- "0.0.0.0:5432:5432" # 将容器的 5432 端口映射到主机的 15432
volumes:
- /home/opengauss:/var/lib/opengauss # 持久化数据
hostname: opengauss
privileged: true
shm_size: '512MB' # openGauss 需要较大的共享内存
networks:
- opengauss-net
networks:
opengauss-net:
driver: bridge
#保存退出:wq
五、启动opengauss服务
bash
## 启动
docker-compose up -d
# 查看状态:
docker ps
# 示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21b9b589717c opengauss:6.0.2 "entrypoint.sh gauss..." 20 hours ago Up 20 hours 0.0.0.0:5432->5432/tcp opengauss
## 停止
docker-compose down
六、验证服务
bash
## 进入容器
docker exec -it opengauss bash
## 登录数据库
su - omm
gsql -d postgres -U omm -W YourStrongPassword123!
## 如果成功进入 gsql 命令行,说明数据库已就绪。你可以尝试执行一些 SQL 命令:
-- 查看当前版本
SELECT version();
-- 列出所有数据库
\l
-- 退出
\q
七、外部连接(可选)
你可以使用支持 PostgreSQL 协议的客户端(如 DBeaver、Navicat、psql 等)连接 openGauss。
连接信息如下:
- 主机地址: 服务器ip地址
- 端口: 5432
- 数据库名: postgres
- 用户名: omm
- 密码: YourStrongPassword123!
八、常见问题排查
容器启动失败或立即退出:
- 检查 GS_PASSWORD 是否符合复杂度要求。
- 确保 Docker 有足够的内存和磁盘空间。
- 查看日志:docker logs opengauss
无法连接数据库:
- 确认端口映射正确。
- 检查防火墙是否阻止了 15432 端口。
性能问题:
- 增加 shm_size 和容器内存限制。
九、总结
通过 Docker 和 docker-compose,我们可以非常方便地部署 openGauss 数据库,极大地简化了开发和测试环境的搭建过程。结合数据卷挂载,还能保证数据的持久化和可迁移性。
希望本文能帮助你快速上手 openGauss!如果你正在学习国产数据库或构建基于 openGauss 的应用,不妨从这个轻量级部署方案开始。
参考链接:
openGauss 官网:https://opengauss.org