如何容器部署单机国产瀚高数据库

# 导读 本文主要讲述了如何容器部署单机瀚高数据库。镜像由瀚高技术人员生成,如果需要自己构建,可以参考博文《PostgreSQL 生态之HighgoDB 容器化部署方式》,https://pgfans.cn/a/2116。 `Here we go!!! >>>` ------ # 1. 导出导入 可以在线pull一个镜像 ```bash docker pull qiuchenjun/hgdb-see:4.5.7 ``` 由于这是个人制作的镜像,所以最好tag一下,如: ```bash docker tag qiuchenjun/hgdb-see:4.5.7 highgo/hgdb-see:4.5.7 ``` 从本地导出镜像: ```bash docker save highgo/hgdb-see:4.5.7 -o hgdb-see-4.5.7-docker.tar ``` 导入其他服务器: ```bash docker load -i hgdb-see-4.5.7-docker.tar ``` # 2. 单机运行: 执行以下命令就可以运行镜像了: ```bash docker run -dit --name=hgdb457 -p 5866:5866 \ -v /home/hgdb457:/home/highgo/hgdb \ -e TZ="Asia/Shanghai" \ -e LANG="en_US.utf8" \ -e POSTGRES_HOST_AUTH_METHOD="sm3" \ -e POSTGRES_PASSWORD="Hello@1234" \ -e POSTGRES_INITDB_ARGS="-e sm4 -c 'echo 12345678' -E 'UTF8'" \ highgo/hgdb-see:4.5.7 ``` **说明:** 1. 通过`--name`为构建后的容器命名,可以根据需要进行命名; 2. `-p`为宿主机端口与容器端口的映射。如果需要运行多个数据库容器,这里使用不同的命名以及不同的端口是最合适不过的; 3. 使用`-v`将宿主机目录映射到容器目录,这样可以从宿主机找到数据所在; 4. 通过`TZ`和`LANG`可以设置时区和字符集; 5. `POSTGRES_HOST_AUTH_METHOD` 用来设置客户端访问密码加密方式,瀚高数据库增加了`sm3`加密方式,如不需要则使用`md5`即可; 6. `POSTGRES_PASSWORD` 设置管理用户(`sysdba`、`syssao`以及`syssso`)的密码; 7. `POSTGRES_INITDB_ARGS` 设置其他参数; 8. 授权文件请放到目录`/home/hgdb457/hgdb/data`下,命名为`hgdb.lic`。 # 3. 其他操作 进入容器`bash`: ```bash docker exec -it hgdb457-primary bash ``` 宿主机直接运行`psql`: ```bash docker exec -it hgdb457-primary gosu highgo psql highgo sysdba ``` 查看授权: ```bash docker exec -it hgdb457-primary gosu highgo check_lic ``` ------ `<<< There you go!!!` # 总结 容器部署单机数据库还是比较简单的,需要注意的是一些持久化设置以及授权文件的安置。如有问题及时沟通。