容器部署高斯gauss数据库
OpenGauss Docker 部署指南
本指南将详细介绍如何使用 Docker 部署 OpenGauss 数据库。OpenGauss 是一个开源的关系数据库管理系统,适用于多种应用场景。以下是部署的步骤及相关命令。
前提条件
在开始之前,请确保您已安装 Docker,并且 Docker 服务正在运行。您可以通过以下命令检查 Docker 是否正常工作:
docker --version
拉取 OpenGauss 镜像
首先,从 Docker 镜像库中拉取 OpenGauss 的镜像。使用以下命令:
docker pull docker.jepwei.us.kg/opengauss:v1.0
该命令将下载 OpenGauss 的 v1.0 版本镜像。
运行 OpenGauss 容器
接下来,使用以下命令启动 OpenGauss 容器:
docker run --name OpenGauss \
--privileged=true \
-idt \
--restart=always \
-u root \
-p 15432:5432 \
-e GS_PASSWORD=Qweqwe@123 \
-v /etc/localtime:/etc/localtime \
-v /data/OpenGauss:/var/lib/opengauss \
docker.jepwei.us.kg/opengauss:v1.0
参数说明
--name OpenGauss:指定容器名称为 OpenGauss。--privileged=true:以特权模式运行容器。-idt:以分离模式运行容器,并分配一个伪终端。--restart=always:容器停止后自动重启。-u root:以 root 用户身份运行容器。-p 15432:5432:将主机的 15432 端口映射到容器的 5432 端口。-e GS_PASSWORD=Qweqwe@123:设置 OpenGauss 数据库的管理员密码。-v /etc/localtime:/etc/localtime:将主机的本地时间映射到容器中。-v /data/OpenGauss:/var/lib/opengauss:将主机的/data/OpenGauss目录挂载到容器的数据库数据目录。
验证安装
容器启动后,您可以使用以下命令查看正在运行的容器:
docker ps
如果您看到 OpenGauss 容器在运行,说明部署成功。
结论
通过以上步骤,您已成功在 Docker 中部署了 OpenGauss 数据库。您可以根据需要进行进一步的配置和使用。

容器启动中的参数讲解
GS_PASSWORD
在使用 OpenGauss 镜像时,必须设置该参数。该参数值不能为空或未定义。它设置了 OpenGauss 数据库的超级用户 omm 及测试用户 gaussdb 的密码。OpenGauss 安装时默认创建 omm 超级用户,该用户名暂时无法修改。测试用户 gaussdb 是在 docker-entrypoint.sh 中自定义创建的。
OpenGauss 镜像配置了本地信任机制,因此在容器内连接数据库无需密码,但若要从容器外部(其他主机或其他容器)连接,则必须输入密码。
OpenGauss 的密码有复杂度要求:密码长度需超过 8 个字符,且必须同时包含英文字母、数字和特殊符号。
GS_NODENAME
指定数据库节点名称,默认为 gaussdb。
GS_USERNAME
指定数据库连接用户名,默认为 gaussdb。
GS_PORT
指定数据库端口,默认为 5432。
远程连接配置
默认情况下,您可以直接使用工具连接数据库。如果无法正常连接,请执行以下操作。
进入容器并修改配置文件
进入容器以修改配置文件以允许远程登录:
docker exec -it OpenGauss sh
修改 postgresql.conf 文件
使用以下命令编辑 postgresql.conf 文件:
vi /var/lib/opengauss/data/postgresql.conf
将以下行修改为:
listen_addresses = '*'
修改 pg_hba.conf 文件
使用以下命令编辑 pg_hba.conf 文件:
vi /var/lib/opengauss/data/pg_hba.conf
添加以下行以允许所有 IP 地址连接:
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 sha256
注意事项
确保 Docker 服务正常运行,并且有足够的系统资源。
在生产环境中,建议使用更复杂的密码,并根据实际需求配置网络安全策略。
定期备份数据库数据,以防止数据丢失。
通过以上步骤,您可以顺利部署并配置 OpenGauss 数据库。根据实际需求进行进一步的优化和调整。