容器安装

本章节主要介绍通过Docker安装openGauss,方便DevOps用户的安装、配置和环境设置。

支持的架构和操作系统版本

  • x86-64 CentOS 7.6

  • ARM64 openEuler 20.03 LTS

配置准备

使用 buildDockerImage.sh脚本构建docker镜像,buildDockerImage.sh是一个方便使用的shell脚本,提供MD5的检查。

创建openGauss docker镜像

容器安装 - 图1 说明:

  • 安装前需要提供openGauss二进制安装包,解压后将以bz2结尾的包(openGauss-X.X.X-CentOS-64bit.tar.bz2),放到 dockerfiles/<version>文件夹。二进制包可以从 https://opengauss.org/zh/download.html下载,确保有正确的yum源。

  • 运行buildDockerImage.sh脚本时,如果不指定-i参数,此时默认提供MD5检查,需要您手动将校验结果写入md5_file_amd64文件。

    1. ## 修改md5校验文件内容
    2. cd /soft/openGauss-server/docker/dockerfiles/1.0.1
    3. md5sum openGauss-1.0.1-CentOS-64bit.tar.bz2
    4. ## 将校验信息写入校验文件md5_file_amd64中
    5. echo "58b9a029719f2d9d32b7d619c850735c openGauss-1.0.1-CentOS64bit.tar.bz2" > md5_file_amd64
  • 安装前需要从华为开源镜像站获取openEuler_aarch64.repo文件,并放到openGauss-server-master/docker/dockerfiles/1.0.1文件夹下面。openEuler_aarch64.repo获取方法:

    1. wget -O openEuler_aarch64.repo https://mirrors.huaweicloud.com/repository/conf/openeuler_aarch64.repo

在dockerfiles文件夹运行buildDockerImage.sh脚本。

  1. [root@ecs-complie dockerfiles]# ./buildDockerImage.sh
  2. Usage: buildDockerImage.sh -v [version] [-i] [Docker build option]
  3. Builds a Docker Image for openGauss
  4. Parameters:
  5. -v: version to build
  6. Choose one of: 1.0.0 1.0.1
  7. -i: ignores the MD5 checksums
  8. LICENSE UPL 1.0

环境变量

为了更灵活的使用openGuass镜像,可以设置额外的参数。未来我们会扩充更多的可控制参数,当前版本支持以下变量的设定。

GS_PASSWORD

使用openGauss镜像的时候,必须设置该参数。该参数值不能为空或者不定义。该参数设置了openGauss数据库的超级用户omm以及测试用户gaussdb的密码。openGauss安装时默认会创建omm超级用户,该用户名暂时无法修改。测试用户gaussdb是在entrypoint.sh中自定义创建的用户。

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

openGauss的密码有复杂度要求

密码长度8个字符以上,必须同时包含大写字母、小写字母、数字、以及特殊符号(特殊符号仅包含”#?!@&”需要用转义符”\“进行转义)。

GS_NODENAME

指定数据库节点名称,默认为gaussdb。

GS_USERNAME

指定数据库连接用户名,默认为gaussdb。

GS_PORT

指定数据库端口,默认为5432。

开启实例

  1. $ docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 opengauss:1.0.1

从操作系统层面连接数据库

  1. $ docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 -p8888:5432 opengauss:1.0.1
  2. $ gsql -d postgres -U gaussdb -W'Enmo@123' -h your-host-ip -p8888

数据持久化

  1. $ docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 -v /opengauss:/var/lib/opengauss opengauss:1.0.1