Docker安装openGauss

发布于:2025-06-12 ⋅ 阅读:(29) ⋅ 点赞:(0)

参考官方文档

1. 获取镜像

openGauss镜像主要有两种获取方式,分别可以通过docker pulldocker load拉取对应镜像,下面将详细介绍这两种获取路径。

拉取dockerhub镜像

docker pull opengauss/opengauss-server:latest

验证镜像状态 

$ docker images

REPOSITORY                           TAG                 IMAGE ID             CREATED             SIZE
opengauss/opengauss-server   latest              9763e8b26794        2 days ago          1.68GB

下载镜像包并加载

下载镜像包(以openGauss7.0.0-RC1.B023/openEuler20.03/arm下的包为例)

$ wget https://download-opengauss.osinfra.cn/archive_test/7.0.0-RC1/openGauss7.0.0-RC1.B023/openEuler20.03/arm/openGauss-Docker-7.0.0-RC1-aarch64.tar

加载镜像 

docker load -i openGauss-Docker-7.0.0-RC1-aarch64.tar

     验证镜像状态 

    $ docker images

    REPOSITORY                           TAG                 IMAGE ID             CREATED             SIZE
    opengauss/opengauss-server   latest              9763e8b26794        2 days ago          1.68GB


     2、运行容器

    opengauss/opengauss-server:latest 版本为例,以下命令将启动数据库并映射宿主机的端口到容器

    docker run --name opengauss --privileged=true -d -e GS_USERNAME=root -e GS_PASSWORD=Enmo@123 -p 5432:5432 opengauss/opengauss-server:latest

    启动参数

    • --name opengauss:为容器命名为opengauss
    • --privileged=true: 授予容器特权模式
    • -d: 以后台模式运行容器
    • -p 5432:5432: 将容器的5432端口映射到宿主机的5432端口

    必选容器内环境变量

    • -e GS_PASSWORD=YourPassoword:设置数据库超级用户omm密码

    可选容器内环境变量

    • -e GS_NODENAME=YourNodeName:指定数据库节点名称,默认为gaussdb
    • -e GS_USERNAME=YourUserName:指定数据库连接用户名,默认为测试用户gaussdb
    • -e GS_USER_PASSWORD=YourUserPassword:指定用户$GS_USERNAME密码,默认为$GS_PASSWORD
    • -e GS_PORT=YourPort:指定容器内数据库端口,默认为5432
    • -e GS_DB=YourDbName:在容器内创建数据库,默认为postgres

    3、容器运行测试

    验证容器运行状态

    docker ps 


    4、容器内部连接数据库

    1、进入容器:

    docker exec -it <CONTAINER ID> bash

    2、登录omm超级用户:

    $ su omm
    $ gsql -d postgres -p 5432

     3、从宿主机连接数据库

    宿主机可以通过以下命令连接数据库(需安装gsql客户端)

    gsql -d postgres -U gaussdb -W YourPassoword -h your-host-ip -p 5432 

    5、其他配置 

    1、数据持久化

    通过以下命令,将宿主机的/opengauss目录挂载到容器的/var/lib/opengauss目录,实现数据的持久化存储

    $ docker run --name opengauss --privileged=true -d -e GS_PASSWORD=YourPassoword -v /opengauss:/var/lib/opengauss opengauss/opengauss-server:latest

    2、参数配置

    容器内的配置文件路径:

    /var/lib/opengauss/data/postgresql.conf

     修改完配置文件后,请使用以下命令重启容器以使更改生效:

    docker restart <CONTAINER ID>

    6、创建库、schema

    参考https://docs.opengauss.org/zh/docs/7.0.0-RC1/docs/SQLReference/SET.html

    Database和 Schema设计 | openGauss文档 | openGauss社区

    -- 查看模式
    SHOW sql_compatibility;
    
    -- 创建数据库指定模式
    create database portal dbcompatibility 'B';
    
    -- 删除数据库
    DROP DATABASE  IF EXISTS  portal;
    
    -- 创建schema
    create schema portaldb;