SinoDB容器化——基于Docker的SinoDB镜像创建

2022-03-17 00:00:00 数据库 镜像 配置 容器 实例

随着Docker的流行,主流的数据库厂商如Oracle,MySQL,SQL Server等均提供了Docker镜像,尽管在生产环境中使用数据库容器化方案上,仍存在较多的争议,但数据库容器化在测试和开发上能为相关人员提供极大的便利。SinoDB作为一款面世已近4年的国产数据库,当前在国内外的知名度仍然有限,为让潜在用户更方便地了解SinoDB的强悍性能,同时为给我们客户提供更方便的开发测试环境,对SinoDB的容器化是一个值得探索的新方向。本文展示了基于Docker的SinoDB镜像创建的过程。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。以SinoDB为例,创建一个用于测试的数据库实例通常需要包含如下几个步骤:获取数据库安装包;安装数据库;配置实例和操作系统参数;启动数据库实例。基于Docker,我们可以将这些步骤配置好,打包成一个预装了SinoDB数据库的Docker镜像(build),将镜像提供给用户后(ship),直接运行(run)即可;如需要修改数据库配置,只需要更新镜像,用户无需关心中间的繁琐步骤,可以专注于数据库服务上,十分方便。




一、Docker主机环境

本文基于如下软硬件环境进行SinoDB on Docker镜像创建:
· 操作系统:CentOS 7.7.1908 (on Linux86_64)
· CPU 核数:4
· 内存:8GB
· Docker 版本:19.03.12
· SinoDB版本:SinoDB12.10.FC8TL


二、SinoDB on Docker 镜像创建

(1)配置文件准备

1.数据库安装包文件(iif.12.10.FC8TL.linux-x86_64.tar)

2.编写数据库安装脚本(sinodbinit.sh),主要完成数据库的安装,并调用数据库实例配置脚本(gen_env.sh)。主要内容如下:

3.编写数据库实例配置脚本(gen_env.sh),完成数据库实例配置文件和运行环境的生成,数据库实例参数配置部分内容如下:

4.编写数据库初始化程序(sinodb),由用户初次使用Docker镜像时调用初始化数据库实例,主要内容如下:

5.编写创建镜像所需的Dockerfile文件,主要内容如下:



(2)构造镜像

将上述文件上传至到Docker服务器,并执行如下构建镜像命令,完成SinoDB镜像的创建。至此,SinoDB的Docker镜像文件就生成好了,我们需要通过它启动容器,以确认其是否能正常提供SinoDB数据库服务。



(3)容器检查

1. 启动容器

执行如下命令,启动容器,容器中数据库实例端口设置为18411, 需要找一个本地主机的端口对其进行映射(i.e. “-p 18411:18411”);为防止容器空间不断变大,需要将容器中的数据文件目录改在至本地主机的目录中(-v data/dbspaces:/data/dbspaces)

2.确认容器已经成功启动,并进入容器确认数据库实例已经启动:

3.后可以在外部通过客户端工具,尝试连接和访问数据库服务器内容,验证数据库服务可用性。





三、总结

本文主要说明了结合SinoDB数据库安装包、数据库安装和配置程序和Dockerfile,完成SinoDB的Docker镜像制作和检验的过程,这是我们在数据库容器化方向上的初步探索,后续将会结合用户情况进行相关课题的研究,敬请期待。

相关文章