如何容器部署单机国产瀚高数据库
# 导读
本文主要讲述了如何容器部署单机瀚高数据库。镜像由瀚高技术人员生成,如果需要自己构建,可以参考博文《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!!!`
# 总结
容器部署单机数据库还是比较简单的,需要注意的是一些持久化设置以及授权文件的安置。如有问题及时沟通。