银河麒麟通过 docker 离线安装 opengauss 数据库(单节点部署)

  1. 准备合适的 docker 镜像
  2. 通过文件传输工具将镜像传输至服务器
  3. 加载镜像文件
docker load -i opengauss_3.0.0.tar

正常应该是输出类似这样的内容:

6f37ca73c74f: Loading layer [==================================================>]  75.16MB/75.16MB
fbf2d42d54b9: Loading layer [==================================================>]   57.7MB/57.7MB
c777acc6f953: Loading layer [==================================================>]  20.48kB/20.48kB
a8d219ac51aa: Loading layer [==================================================>]  337.4MB/337.4MB
63f854361eb8: Loading layer [==================================================>]  20.99kB/20.99kB
Loaded image: enmotech/opengauss:5.0.0

如果提示下面的内容,可能是你的 docker 没有启动

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

systemctl start docker
  1. 验证镜像是否加载成功,返回如下情况即为成功,下面的 enmotech/opengauss是你的镜像名称,不同地方下载的镜像该名称可能不同,这个名称后面会用到
docker images ls
# 下面这个是正常输出
REPOSITORY           TAG       IMAGE ID       CREATED       SIZE
enmotech/opengauss   5.0.0     c69c8aebefe8   2 years ago   465MB
  1. 创建挂载数据目录
mkdir -p /example/opengauss/data
  1. 启动容器,可以根据你的需要修改容器名称(--name 后面的参数),修改数据库密码,修改映射端口(-p参数的冒号前面的端口)
docker run \
> --name opengauss \
> --privileged=true \
> -d \
> -e GS_PASSWORD=your-password \
> -p 1234:5432 \
> -v /example/opengauss/data:/var/lib/opengauss/data \
> enmotech/opengauss:5.0.0

成功后会输出一长串容器ID(如果成功后又快速退出了也会,这个不代表已经成功了)
7. 查看容器运行状态,如果 STATUS 是 UP,就是启动成功了。如果你看到的是 Exited,那说明启动后又退出了,没有成功跑起来。

docker ps -a
CONTAINER ID   IMAGE                      COMMAND                   CREATED        STATUS      PORTS                                         NAMES
31858d593b66   enmotech/opengauss:5.0.0   "entrypoint.sh gauss…"   2 months ago   Up 4 days   0.0.0.0:14869->5432/tcp, :::1234->5432/tcp   opengauss
一种可能的错误情况 如果你看到的是 Exited,那说明启动后又退出了,没有成功跑起来。
docker ps -a | grep opengauss
CONTAINER ID   IMAGE          COMMAND           CREATED          STATUS                      PORTS     NAMES
1b87a6e93e3f   478a00294137   "entrypoint.sh"   35 seconds ago   Exited (1) 34 seconds ago             opengauss

可以用以下命令查看情况:

# docker logs 容器ID
docker logs 1b876e93e3f

如果你得到的是如下的提示:

Primary host is empty, at least one primary and one standby host are needed

那有可能是你的镜像不支持单节点部署,建议你更换镜像文件

  1. 通过以下命令就可以进入容器了
docker exec -it opengauss /bin/bash

如果你觉得这个命令太长,可以配置一个简化命令

vim ~/.bashrc
# 添加别名
alias enter-gauss='docker exec -it opengauss /bin/bash'
source ~/.bashrc

以上步骤完成后,你就可以直接使用 enter-gauss 进入容器

  1. openGauss安装时默认会创建omm超级用户,容器内切换到该用户
su - omm
  1. 输入 gsql 就可以进入数据库了,之后的赋权操作都需要在此处进行,\q 可以退出数据库
    注意:默认是不允许 omm 用户远程连接数据库的
    可能会提示以下内容:

Forbid remote connection with initial user.

参考资料

posted @ 2025-07-30 15:03  MGTPEZ  阅读(78)  评论(0)    收藏  举报