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

相关推荐
时间之里16 小时前
【linux】:目录解析
linux·运维·服务器
小北方城市网16 小时前
第 10 课:Python 全体系实战整合与职业进阶指南(完结篇)
大数据·开发语言·数据库·python
qq_3176203116 小时前
001:Linux 命令速查手册
linux·运维·服务器
韩立学长17 小时前
基于Springboot建筑物保护可视化系统rk6tni53(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
量化风云17 小时前
2026量化新基建(二) - sqlite 与 sqlite-utils
数据库·python·sqlite·量化交易·量化交易课程
Element_南笙17 小时前
BUG:ModuleNotFoundError: No module named ‘milvus_lite‘
java·服务器·数据库
落笔映浮华丶17 小时前
linux中vim常用命令
linux
彷徨而立17 小时前
【SDL】多线程中,SDL_Init() 接口被两个线程同时调用了,会有啥问题?
linux·sdl
铅笔侠_小龙虾17 小时前
Ubuntu 搭建前端环境&Vue实战
linux·前端·ubuntu·vue
世转神风-17 小时前
linux-嵌入式开发基础-网线直连-局域网传输文件-快速完成文件替换
linux·嵌入式