1. 拉取瀚高 4.5 镜像

首先,打开终端并拉取该镜像:

Bash

docker pull qiuchenjun/hgdb-see:4.5.10.3

注: 镜像大小约为 600MB。如果在国内拉取速度较慢,建议提前为 Docker 配置好国内镜像加速器。

2. 创建数据持久化目录

打开终端,执行以下命令创建指定的目录,并赋予相应的读写权限,以防止容器内部因权限不足导致初始化失败:

Bash

mkdir -p /Users/boom_hao/Desktop/s/highgo/data
chmod 777 /Users/boom_hao/Desktop/s/highgo/data
3.启动
docker run -dit \
  --name highgo-4.5 \
  --privileged=true \
  -p 5866:5866 \
  -v /Users/boom_hao/Desktop/s/highgo/data:/home/highgo/hgdb/data \
  -e TZ="Asia/Shanghai" \
  -e LANG="en_US.utf8" \
  -e POSTGRES_HOST_AUTH_METHOD="md5" \
  -e POSTGRES_PASSWORD="Hello@1234" \
  -e POSTGRES_INITDB_ARGS="-A md5 -e sm4 -c 'echo 12345678' -E 'UTF8'" \
  qiuchenjun/hgdb-see:4.5.10.3

关键参数说明:

  1. 挂载路径说明
    • 将容器内的挂载点改为了 /home/highgo/hgdb/data
    • 注意:请务必挂载到 .../data 子目录,而不是直接挂载到 /home/highgo/hgdb。因为二进制文件(包括之前找不到的 psql 命令)通常就在 hgdb 目录下,如果直接挂载根目录,宿主机的空文件夹会“覆盖”掉容器里的程序文件,导致容器无法启动或找不到命令。
  2. POSTGRES_PASSWORD=“Hello@1234”
    • 这是设置的 sysdba 用户的初始密码。容器首次启动并初始化数据库时会生效。
  3. POSTGRES_INITDB_ARGS
    • -A md5:指定默认的认证方式。
    • -e sm4 -c 'echo 12345678':这是瀚高安全版特有的存储加密配置,使用了国密 SM4 算法,12345678 是加密密钥(必须为 8 位或 16 位)。
  4. POSTGRES_HOST_AUTH_METHOD=“md5”
    • 强制开启密码校验。这意味着之后从 DBeaver 或 Navicat 连接时,必须输入上面设置的密码。

启动后的操作建议:

  • 首次初始化较慢:因为涉及到国密初始化和权限分配,容器启动后可能需要等待 10-20 秒才能正常连接。
  • 连接测试: 由于在启动命令里已经通过环境变量设置了密码,现在可以直接在外部工具(如 DBeaver)里连接:
    • 主机localhost
    • 端口5866
    • 用户sysdba
    • 密码Hello@1234

参考资料

https://hub.docker.com/r/qiuchenjun/hgdb-see

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐