Docker安装openGauss
参考官方文档
1. 获取镜像
openGauss镜像主要有两种获取方式,分别可以通过docker pull
和docker 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;