使用 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

相关推荐
安_8 分钟前
RAG的向量数据库:为LLM提供语义搜索能力
数据库
喜欢的名字被抢了44 分钟前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
雾时之林44 分钟前
Linux----cron定时服务
linux·运维·服务器
这个DBA有点耶1 小时前
3000万个应用共享一套数据库:多租户“逻辑表”架构是如何做到的?
数据库·架构·dba
测试运维日常笔记1 小时前
Oracle 数据库连接认证方式详解
数据库·oracle
ClouGence2 小时前
PostgreSQL 同步到 Iceberg:开源、私有部署与 SaaS 方案对比
数据库·postgresql·开源
这个DBA有点耶2 小时前
DBA进阶之路:从“修数据库”到“管架构债”
数据库·架构·dba
wengqidaifeng2 小时前
1.从“会敲命令”到理解 Linux:15 个基础指令、文件树与命令执行的本质
linux·运维·服务器·ubuntu
ACP广源盛139246256733 小时前
WAIC2026 国产超节点算力浪潮下@ACP#IX9104 在算力矩阵中的定位与落地场景
大数据·数据库·人工智能·嵌入式硬件·线性代数·矩阵
xiaoxiangsiyan3 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns