写点什么

YashanDB Docker 镜像实践指南:一次配置,多处部署!

作者:数据库砖家
  • 2025-04-30
    广东
  • 本文字数:1138 字

    阅读完需:约 4 分钟

在传统部署中,使用 yasboot 安装 YashanDB 虽然功能强大,但涉及的配置文件和依赖环境较多,对于不同用户和系统环境来说,上手门槛不小。每次换机器或初始化环境,都得重复大量配置操作,非常不方便。

而 Docker 的优势就在于:一次构建,随处运行。通过构建数据库镜像,我们可以快速完成环境封装,实现跨平台、跨环境的一键部署。

什么是数据库镜像和容器?

镜像(Image):数据库所需的运行环境被打包成一个镜像文件,类似“可执行的操作系统快照”;

容器(Container):基于镜像运行出的“实例”,就像 Java 的类和对象关系。

镜像轻量级、不依赖宿主机系统,部署效率高,还可以层级缓存,加快构建速度。

如何构建 YashanDB 镜像?

通过 Dockerfile 指令文件定义镜像构建过程。核心步骤包括:

1.以 centos:8.1.1911 作为基础镜像;

2.安装必要依赖(如 glibc、net-tools 等);

3.拷贝数据库安装包和初始化脚本;

4.创建 yashan 用户并配置环境变量;

5.解压数据库,设置运行环境;

6.指定容器启动执行的命令。

关键片段如下(已做适度简化):

FROM centos:8.1.1911COPY yashandb.tar.gz /home/yashan/COPY initYashanDB.sh /home/yashan/RUN useradd yashan && chown yashan:yashan /home/yashan/*USER yashanWORKDIR /home/yashanENV YASDB_HOME=/home/yashan/yashandbCMD ["./initYashanDB.sh"]
复制代码

初始化脚本 initYashanDB.sh 负责自动部署数据库并保持容器运行状态,防止容器因脚本执行结束而退出。

容器启动并挂载宿主机 SQL 脚本目录

在实际项目中,比如“数联网一体机”场景,用户希望容器启动后自动执行 SQL 文件初始化数据库。可以使用 -v 参数绑定宿主机目录:

docker run -itd \-p 1688:1688 \-v /home/yashan/sql:/home/yashan/sql:rw \yashandb:latest
复制代码

脚本会检测 sql/ 目录,并按顺序执行所有 .sql 文件,首轮执行后还会生成一个标志文件,防止重复执行。

镜像推送至阿里云 ACR

完成镜像构建后,可以发布至私有镜像仓库,如阿里云 ACR:

docker tag yashandb:latest registry.cn-shenzhen.aliyuncs.com/your_namespace/yashandb:tagdocker push registry.cn-shenzhen.aliyuncs.com/your_namespace/yashandb:tag
复制代码

在其他机器拉取后即可直接运行,完全复用已有环境。


数据目录复用方式

如用户希望复用已有的 yasdb_data 数据目录,不再通过 yasboot 部署,可以使用传统的 shell 脚本完成数据库启动。常见方法包括:

1.检查并加载历史配置;

2.判断是否首次部署;

3.调用 yasdb 命令挂载数据并打开数据库;

4.根据配置选择是否初始化样例数据。

这一方式更适用于“数据库镜像持久化”和“快速恢复”等高级运维场景。

总结建议

推荐使用 Docker 封装部署 YashanDB,提升交付效率;

建议标准化 init 脚本和挂载策略,便于复用与运维;

适合开发测试、边缘节点和轻量交付场景

用户头像

还未添加个人签名 2025-04-09 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB Docker 镜像实践指南:一次配置,多处部署!_数据库_数据库砖家_InfoQ写作社区