YashanDB Docker 镜像实践指南:一次配置,多处部署!
在传统部署中,使用 yasboot 安装 YashanDB 虽然功能强大,但涉及的配置文件和依赖环境较多,对于不同用户和系统环境来说,上手门槛不小。每次换机器或初始化环境,都得重复大量配置操作,非常不方便。
而 Docker 的优势就在于:一次构建,随处运行。通过构建数据库镜像,我们可以快速完成环境封装,实现跨平台、跨环境的一键部署。
什么是数据库镜像和容器?
镜像(Image):数据库所需的运行环境被打包成一个镜像文件,类似“可执行的操作系统快照”;
容器(Container):基于镜像运行出的“实例”,就像 Java 的类和对象关系。
镜像轻量级、不依赖宿主机系统,部署效率高,还可以层级缓存,加快构建速度。
如何构建 YashanDB 镜像?
通过 Dockerfile 指令文件定义镜像构建过程。核心步骤包括:
1.以 centos:8.1.1911 作为基础镜像;
2.安装必要依赖(如 glibc、net-tools 等);
3.拷贝数据库安装包和初始化脚本;
4.创建 yashan 用户并配置环境变量;
5.解压数据库,设置运行环境;
6.指定容器启动执行的命令。
关键片段如下(已做适度简化):
代码语言:javascript代码运行次数:0运行复制FROM centos:8.1.1911
COPY yashandb.tar.gz /home/yashan/
COPY initYashanDB.sh /home/yashan/
RUN useradd yashan && chown yashan:yashan /home/yashan/*
USER yashan
WORKDIR /home/yashan
ENV YASDB_HOME=/home/yashan/yashandb
CMD ["./initYashanDB.sh"]
初始化脚本 initYashanDB.sh 负责自动部署数据库并保持容器运行状态,防止容器因脚本执行结束而退出。
容器启动并挂载宿主机 SQL 脚本目录
在实际项目中,比如“数联网一体机”场景,用户希望容器启动后自动执行 SQL 文件初始化数据库。可以使用 -v 参数绑定宿主机目录:
代码语言:javascript代码运行次数:0运行复制docker run -itd \
-p 1688:1688 \
-v /home/yashan/sql:/home/yashan/sql:rw \
yashandb:latest
脚本会检测 sql/ 目录,并按顺序执行所有 .sql 文件,首轮执行后还会生成一个标志文件,防止重复执行。
镜像推送至阿里云 ACR
完成镜像构建后,可以发布至私有镜像仓库,如阿里云 ACR:
代码语言:javascript代码运行次数:0运行复制docker tag yashandb:latest registry-shenzhen.aliyuncs/your_namespace/yashandb:tag
docker push registry-shenzhen.aliyuncs/your_namespace/yashandb:tag
在其他机器拉取后即可直接运行,完全复用已有环境。
数据目录复用方式
如用户希望复用已有的 yasdb_data 数据目录,不再通过 yasboot 部署,可以使用传统的 shell 脚本完成数据库启动。常见方法包括:
1.检查并加载历史配置;
2.判断是否首次部署;
3.调用 yasdb 命令挂载数据并打开数据库;
4.根据配置选择是否初始化样例数据。
这一方式更适用于“数据库镜像持久化”和“快速恢复”等高级运维场景。
总结建议
推荐使用 Docker 封装部署 YashanDB,提升交付效率;
建议标准化 init 脚本和挂载策略,便于复用与运维;
适合开发测试、边缘节点和轻量交付场景。