使用 Docker 和 docker-compose 快速部署 openGauss

文章目录

一、前言

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

相关推荐
da-peng-song4 小时前
ArcGIS Desktop使用入门(三)图层右键工具——定义查询
数据库·arcgis·拆分数据·定义查询
热爱正能量4 小时前
数据库死锁排查思路
数据库
骑上单车去旅行4 小时前
openEuler 22.03 离线源码编译 Zabbix 7.0.27 完整最终整合手册
linux·运维·服务器·zabbix
swordbob4 小时前
MySQL和Oracle关于读未提交的区别
数据库·mysql·oracle
林九生4 小时前
【实用技巧】MySQL 绿色版一键路径更新脚本详解 —— update_path.bat 深度解析
android·数据库·mysql
野生技术架构师4 小时前
从 B+ 树到应用层分表:MySQL 海量数据架构解析
数据库·mysql·架构
Amnesia0_04 小时前
MySQL的事务
数据库·mysql
AC赳赳老秦4 小时前
OpenClaw + 云数据库运维:自动备份、扩容、迁移 RDS/MySQL 云数据库
运维·开发语言·数据库·人工智能·python·mysql·openclaw
向日葵.4 小时前
linux & qnx & git 命令 1
linux·运维·服务器
TDengine (老段)4 小时前
TDengine 物理计划生成 — 算子下沉、Exchange 与 Subplan 切分
大数据·数据库·物联网·时序数据库·tdengine·涛思数据