docker 本地装瀚高 4.5 数据库

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

相关推荐
zhoupenghui1685 小时前
Mysql插入数据时,怎么让自增的主键续接表当前最大ID+1
数据库·mysql·auto increment
LabVIEW开发5 小时前
LabVIEW数据库事务操作
数据库·labview·labview知识·labview功能·labview程序
技术钱5 小时前
Flask-SQLAIchemy和Flask-Migrate扩展的配置与使用
数据库·python·flask
song8546011345 小时前
MYSQL优化器的主要的优化策略及其示例
数据库·mysql
杨浦老苏5 小时前
基于MongoDB Atlas的博客热榜
数据库·博客·blog·waline
Bert.Cai6 小时前
MySQL RAND()函数详解
数据库·mysql
叶总没有会6 小时前
Docker入门
运维·docker·容器
怪我冷i6 小时前
多租户系统PostgreSQL
数据库·postgresql
发现你走远了6 小时前
极简后端环境搭建:一行 Docker 命令部署四大核心数据库(避坑 PG 18+)
数据库·docker·容器