容器镜像安装

本章节主要介绍如何获取openGauss数据库镜像,并通过Docker安装,以便用户能快速开启数据库之旅。

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_PASSWORD=YourPassoword -p 8888:5432 opengauss/opengauss-server:latest

启动参数

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

必选容器内环境变量

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

使用 openGauss 镜像的时候,必须设置该参数,且不能为空或未定义。该参数用于设置 openGauss 数据库的超级用户omm。安装过程中将默认创建omm超级用户,该用户名目前无法更改。

openGauss 镜像配置了本地信任机制,因此在容器内连接数据库时无需密码,但若从容器外部(其它主机或者容器)连接,则必须要输入密码。

密码要求

  • 密码长度必须至少为8个字符。
  • 必须同时包含大写字母、小写字母、数字、以及特殊符号。
  • 支持的特殊符号仅包含\#?!@$%^&\*-(其中!$&需使用转义符号”\“)。

可选容器内环境变量

  • -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 

输出示例:

CONTAINER ID        IMAGE                               COMMAND                  CREATED              STATUS              PORTS                    NAMES
7abc538f242a        opengauss/opengauss-server:latest   "entrypoint.sh gauss…"   About a minute ago   Up About a minute   0.0.0.0:8888->5432/tcp   opengauss

容器内部连接数据库

进入容器:

$ docker exec -it <CONTAINER ID> bash

登录omm超级用户:

$ su omm
$ gsql -d postgres -p 5432

从宿主机连接数据库

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

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

4. 其他配置

数据持久化

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

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

参数配置

容器内的配置文件路径:

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

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

docker restart <CONTAINER ID>

若在容器外配置参数,需要挂载宿主机路径到容器内部的/var/lib/opengauss目录。

有关具体参数的修改,请参考 GUC参数说明

意见反馈
编组 3备份
    openGauss 2025-05-25 22:42:55
    取消