Docker 构建达梦数据库

该文章已生成可运行项目,

1. 准备文件

达梦下载链接
在这里插入图片描述

2. 解压文件

  1. 解压zip

    unzip dm8_20251203_x86_Ubuntu22_64.zip
    

    解压文件为:dm8_20251203_x86_Ubuntu22_64.iso dm8_20251203_x86_Ubuntu22_64.iso_SHA256.txt dm8_20251203_x86_Ubuntu22_64.README

  2. 解压ISO

    7z x dm8_20251203_x86_Ubuntu22_64.iso -o./dm8_20251203_x86_Ubuntu22_64
    

    解压文件为:
    ‘DM8 Install.pdf’ DMInstall.bin

  3. 在解压出的ISO文件夹,添加静默安装文件
    达梦静默安装教程 https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html
    auto_install.xml

    <?xml version="1.0"?>
    <DATABASE>
        <!--安装数据库的语言配置,简体中文版: ZH,繁体中文版: CHT,英文版: EN,不区分大小写。不允许为空 -->
        <LANGUAGE>EN</LANGUAGE>
    
        <!--安装程序的时区配置,缺省为+08:00,取值范围:-12:59 ~ +14:00 -->
        <TIME_ZONE>+08:00</TIME_ZONE>
    
        <!-- key文件路径 -->
        <KEY></KEY>
    
        <!--安装程序组件类型,取值范围:0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端。缺省为0 -->
        <INSTALL_TYPE>0</INSTALL_TYPE>
    
        <!--安装路径,不允许为空。合法的安装路径允许字符的范围是小写字母(a-z)、大写字母(A-Z)、数字(0-9)、下划线(_)、空格( )和中文 -->
        <INSTALL_PATH>/opt/SoftWare/dm8</INSTALL_PATH>
    
        <!--是否初始化库,取值范围:Y/N、y/n,不允许为空 -->
        <INIT_DB>Y</INIT_DB>
    
        <!--数据库实例参数 -->
        <DB_PARAMS>
                <!--初始数据库存放的路径,不允许为空 -->
                <PATH>/opt/SoftWare/dm8data</PATH>
    
                <!--初始化数据库名字,缺省为DAMENG,不超过128个字符 -->
                <DB_NAME>DAMENG</DB_NAME>
    
                <!--初始化数据库实例名字,缺省为DMSERVER,不超过128个字符 -->
                <INSTANCE_NAME>DMSERVER</INSTANCE_NAME>
    
                <!--初始化时设置dm.ini中的PORT_NUM,缺省为5236,取值范围:1024~65534 -->
                <PORT_NUM>5236</PORT_NUM>
    
                <!--初始数据库控制文件的路径,文件路径长度最大为256 -->
                <CTL_PATH></CTL_PATH>
    
                <!--初始化数据库日志文件的路径,文件路径长度最大为256,LOG_PATH值为空则使用缺省值,如果使用非默认值,LOG_PATH中节点数不能少于2个 -->
                <LOG_PATHS>
                        <LOG_PATH>
                        </LOG_PATH>
                </LOG_PATHS>
    
                <!--数据文件使用的簇大小,取值范围:16页、32页、64页,缺省为16页 -->
                <EXTENT_SIZE>16</EXTENT_SIZE>
    
                <!--数据文件使用的页大小,取值范围:4K、8K、16K、32K,缺省为8K -->
                <PAGE_SIZE>8</PAGE_SIZE>
    
                <!--重做日志文件使用的大小,单位MB,在32位版本下,取值范围为256~2048之间的整数,缺省值为2048;在64位版本下,取值范围为256和8192之间的整数,缺省值为4096 -->
                <LOG_SIZE>4096</LOG_SIZE>
    
                <!--大小写敏感。取值范围:Y/N y/n 1/0,缺省为Y -->
                <CASE_SENSITIVE>Y</CASE_SENSITIVE>
    
                <!--字符集选项,缺省为0。0代表GB18030,1代表UTF-8,2代表韩文字符集EUC-KR -->
                <CHARSET>0</CHARSET>
    
                <!--字符类型在计算HASH值时所采用的HASH算法类别。取值范围0,1。0:原始HASH算法;1:改进的HASH算法。缺省为1 -->
                <USE_NEW_HASH>1</USE_NEW_HASH>
    
                <!--初始化时设置SYSDBA的密码。1. 长度不能小于8且不能大于48  2. 需要同时包含大写字母、小写字母和数字-->
                <SYSDBA_PWD>SYSDBA_sys_1</SYSDBA_PWD>
    
                <!--初始化时设置SYSAUDITOR的密码。1. 长度不能小于8且不能大于48  2. 需要同时包含大写字母、小写字母和数字-->
                <SYSAUDITOR_PWD>SYSAUDITOR_sys_1</SYSAUDITOR_PWD>
    
                <!--初始化时设置SYSSSO的密码。仅在安全版本下可见和可设置。1. 长度不能小于8且不能大于48  2. 需要同时包含大写字母、小写字母和数字-->
                <SYSSSO_PWD>SYSSSO_sys_1</SYSSSO_PWD>
    
                <!--初始化时设置SYSDBO的密码。仅在安全版本下可见和可设置。1. 长度不能小于8且不能大于48  2. 需要同时包含大写字母、小写字母和数字-->
                <SYSDBO_PWD>SYSDBO_sys_1</SYSDBO_PWD>
    
                <!--初始化时区,默认是东八区。格式为:正负号小时:分钟,取值范围:-12:59 ~ +14:00 -->
                <TIME_ZONE>+08:00</TIME_ZONE>
    
                <!--是否启用页面内容校验,取值范围:0,1,2,3。0:不启用;1:开启页校验并使用CRC校验;2:开启页校验并使用指定的HASH算法进行校验;3:开启页校验并使用快速CRC校验。缺省为3 -->
                <PAGE_CHECK>3</PAGE_CHECK>
    
                <!--设置默认加密算法,不超过128个字符 -->
                <EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME>
    
                <!--设置默认HASH算法,不超过128个字符 -->
                <EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME>
    
                <!--设置根密钥加密引擎,不超过128个字符 -->
                <EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME>
    
                <!--全库加密密钥使用的算法名。算法可以是DM内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密,最长为128个字节 -->
                <ENCRYPT_NAME></ENCRYPT_NAME>
    
                <!--用于加密服务器根密钥,最长为48个字节 -->
                <USBKEY_PIN></USBKEY_PIN>
    
                <!--设置空格填充模式,取值范围:0,1,缺省为0 -->
                <BLANK_PAD_MODE>0</BLANK_PAD_MODE>
    
                <!--指定system.dbf文件的镜像路径,缺省值为空 -->
                <SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH>
    
                <!--指定main.dbf文件的镜像路径,缺省值为空 -->
                <MAIN_MIRROR_PATH></MAIN_MIRROR_PATH>
    
                <!--指定roll.dbf文件的镜像路径,缺省值为空 -->
                <ROLL_MIRROR_PATH></ROLL_MIRROR_PATH>
    
                <!--是否是四权分立,取值范围:0,1。0:不使用;1:使用。缺省为0。仅在安全版本下可见和可设置。 -->
                <PRIV_FLAG>0</PRIV_FLAG>
    
                <!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为257(含结束符),不包括文件名 -->
                <ELOG_PATH></ELOG_PATH>
        </DB_PARAMS>
    
        <!--是否创建数据库实例的服务,取值范围: Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非root用户不能创建数据库服务。 -->
        <CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE>
    
        <!--是否启动数据库,取值范围: Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
        <STARTUP_DB_SERVICE>Y</STARTUP_DB_SERVICE>
    

3. 构建最新版达梦数据库

新建Dockerfile, 与ISO解压文件同层级

# 使用官方 Ubuntu 22.04 LTS 镜像
FROM ubuntu:22.04

# 复制安装文件
COPY dm8_20251203_x86_Ubuntu22_64 /tmp/dm8

# 进入到指定文件夹并安装
RUN groupadd -g 12349 dinstall && \
    useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba && 、
    cd /tmp/dm8 && \
    ./DMInstall.bin -q /tmp/dm8/auto_install.xml && \
    rm -rf /tmp/dm8

# 暴露达梦默认端口
EXPOSE 5236

# 切换到 dmdba 用户
USER dmdba

# 启动命令:前台运行 dmserver(容器主进程)
CMD ["/opt/SoftWare/dm8/bin/dmserver", "/opt/SoftWare/dm8data/DAMENG/dm.ini"]

构建镜像

docker build -f ./dm-dm8_20251203_x86_Ubuntu22_64.dockerfile  -t dameng-dm8:20251203_x86-temp1 .

运行镜像

docker run -itd --name dm8-server -p 5236:5236 dameng-dm8:20251203_x86-temp1

4. 使用Dbeaver 连接达梦数据库

在这里插入图片描述
下载JDBC 驱动
对应教程进行配置 https://eco.dameng.com/community/article/56885f5ce2c66511506f7c7968da84fe

在这里插入图片描述
这样就可以连接了

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值