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

相关推荐
tkevinjd2 分钟前
【无标题】
linux
羑悻的小杀马特7 分钟前
JuiceSSH+cpolar解锁手机远程Linux新姿势,无需公网IP,固定地址稳定用
linux·服务器·coplar
HIT_Weston23 分钟前
30、【Ubuntu】【远程开发】内网穿透:反向隧道建立(二)
linux·运维·ubuntu
小红的布丁31 分钟前
Redis存储引擎剖析:从哈希表到智能数据结构
数据库·redis
乌萨奇也要立志学C++32 分钟前
【Linux】进程间通信(三)System V 共享内存完全指南:原理、系统调用与 C++ 封装实现
linux·c++
Percep_gan33 分钟前
在Linux中安装字体
linux·运维·服务器
ZHANG13HAO1 小时前
通过 MQTT 命令控制 RV1106 的 WebRTC 推流启停” 及 “30 分钟无命令自动停止”
linux
yolo_guo1 小时前
opencv 学习: QA_01 什么是图像锐化
linux·c++·opencv·计算机视觉
饮长安千年月1 小时前
玄机-第八章 内存马分析-java02-shiro
数据库·安全·web安全·网络安全·应急响应
清清&1 小时前
【Linux】冯诺依曼体系结构和操作系统的理解
linux·运维·服务器