写在前面

用 VMware 搭 openGauss 有点点麻烦,百度后发现可以用 docker 直接起,所以再用 docker 搭一遍

搭建 CentOS 7.6

步骤同用 VMware 搭建一样,随便搭搭就行

换源

输入命令:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo更换阿里源

输入命令:yum clean all清除缓存

输入命令:yum makecache生成缓存

输入命令:yum -y update更新yum源

是个有点漫长的过程

安个 python3、bzip2

输入命令:yum install python3 bzip2 -y

关掉防火墙

输入命令:systemctl stop firewalld.service停止防火墙

输入命令:systemctl disable firewalld.service关闭防火墙

reboot重启一下

安装 docker

检查 Linux 版本,必须是 3.10 以上:uname -r

输入命令:yum install -y docker安装 docker

输入命令检查 docker :docker -v

输入命令:systemctl start docker启动 docker 服务

输入命令:systemctl enable docker开机自启动 docker

停止 docker 命令:systemctl stop docker

docker 常用命令

镜像操作命令

操作 命令 说明
检索 docker search 关键字 docker hub 上检索镜像的相关信息
拉取 docker pull 镜像名:tag,tag 是标签,一般是选择版本 :tag可选项,默认为latest
列表 docker images 查看所有本地镜像
删除 docker rmi image-id 删除指定的本地镜像

找镜像去 https://hub.docker.com/

docker 加速

加快拉取速度可以配置镜像加速的服务器,阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到一个专属地址,下文就是配置镜像加速器的方法

配置镜像地址,执行命令vi /etc/docker/daemon.json修改配置文件,如该文件不存在,则创建。在其中加入内容:

1
{"registry-mirrors":["https://h9a56rl5.mirror.aliyuncs.com"]}

依次执行命令systemctl daemon-reloadsystemctl restart docker重新启动 docker

拉取 openGauss 镜像并创建 openGauss 容器

选云和恩墨公司的镜像就行

执行docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Aimerl0@123 -p 6666:5432 enmotech/opengauss:latest拉取镜像并创建容器

参数解释

  • run --name opengauss:指定容器名字为 opengauss,并让 opengauss 容器跑起来

  • --privileged=ture:容器内的 root 用户拥有真正的 root 权限,否则容器内的 root 只是外部的一个普通用户权限,开启此参数后,甚至可以在 docker 里面起 docker

  • -d :后台运行容器,返回容器的 id,也称 启动守护式容器

  • -e:指定容器内的环境变量,也就是指定后面的密码

  • GS_PASSORD:使用 openGauss 镜像的时候必须设置参数,不能为空或不定义,因为该参数是设置数据库内的超级用户omm以及测试用户guassdb的密码,openGauss 安装时默认会创建 omm超级用户,此用户名无法更改,测试用户gaussdb的起 docker 时候自定义创建的用户

    此外,openGauss 镜像配置了本地信任机制,在容器内连接数据库无需密码,从容器外部连接数据库需要输入密码

    再此外,openGauss 的密码有复杂度要求:密码长度8个字符以上,必须同时包含英文字母,数字,以及特殊符号

  • -p:指定一个端口映射,因为要用外部的数据库管理软件连接数据库,所以从容器内部的5432端口映射到外部的6666端口,密码是设置的环境变量Aimerl0@123

  • enmotech/opengauss:latest:拉取的镜像名字

未用到的参数解释

  • GS_NODENAME:指定数据库节点名称,默认为 guassdb
  • GS_USERNAME:指定数据库连接用户名,默认为gaussdb
  • GS_PORT:指定数据库端口,默认为5432

之后执行docker start opengauss启动 openGauss 镜像

因为是上课用的,所以通过docker update --restart=always opengauss设置 openGauss 镜像随着 docker 的启动而启动

至此 openGauss 安装完成

使用 openGauss

在 root 用户状态下使用连接命令连接数据库:docker exec -it opengauss bash

su - omm切换超级用户

执行命令gsql进入数据库