Docker Compose 部署达梦数据库


一、安装前准备
软硬件 版本要求
终端架构 X86-64
Docker 2024 年 4 月版或更高
Docker Compose 1.29.2 或更高

二、获取达梦镜像
  1. 下载镜像包
    从达梦官网下载 Docker 镜像包(如 dm8_20240422_x86_rh6_64_rq_std_8.1.3.100_pack2.tar)。

  2. 导入镜像

    docker load -i dm8_20240422_x86_rh6_64_rq_std_8.1.3.100_pack2.tar  
    

    验证镜像:

    docker images  
    # 输出示例  
    # REPOSITORY   TAG       IMAGE ID       CREATED        SIZE  
    # dm8          latest    xxxx         ...           ...  
    

三、编写 docker-compose.yml

创建文件 docker-compose.yml,内容如下:

version: '3.8'

services:
  dm8:
    image: dm8:latest                           # 替换为实际镜像
    container_name: dm8_test                    # 容器名称
    privileged: true							# 特权模式
    restart: always                             # 自动启动策略
    network_mode: host                          # 使用主机网络模式
    ports:
      - 5236:5236                               # 默认端口映射
    volumes:
      - /home/dmdb/data:/opt/dmdbms/data        # 数据持久化
      - /home/dmdb/log:/opt/dmdbms/log          # 日志持久化
    environment:
      - LD_LIBRARY_PATH=/opt/dmdbms/bin         # 库文件路径
      - INSTANCE_NAME=SYSDBA                    # 实例名称
      - SYSDBA_PWD=Root12345                    # 密码 (不少于9位)
      - PAGE_SIZE=32                            # 页大小 32KB
      - EXTENT_SIZE=32                          # 簇大小 32KB
      - LOG_SIZE=2048                           #日志文件大小 2GB
      - UNICODE_FLAG=1                          #启用Unicode(对应UTF-8)
      - CASE_SENSITIVE=0                        #关闭大小写敏感 

四、启动容器
  1. 启动服务

    docker-compose up -d  
    
  2. 验证容器状态

    docker-compose ps  
    # 输出示例  
    # NAME        COMMAND       STATUS      PORTS  
    # dm8_test    ...           Up         0.0.0.0:30236->5236/tcp  
    
  3. 查看初始化参数

    docker inspect dm8_test | grep -A 15 "Env"  
    # 输出包含环境变量:PAGE_SIZE=16, SYSDBA_PWD=Root12345 等  
    

五、容器管理命令
操作 命令
启动容器 docker-compose start
停止容器 docker-compose stop
重启容器 docker-compose restart
删除容器 docker-compose down

六、连接数据库
  1. 进入容器

    docker-compose exec dm8_test bash  
    
  2. 连接达梦数据库

    ./disql SYSDBA/Root12345@localhost:5236  
    

七、参数说明
参数名 描述 约束
PAGE_SIZE 页大小,可选值:4/8/16/32(默认 8) 初始化后不可修改
EXTENT_SIZE 簇大小,可选值:16/32/64(默认 16) 初始化后不可修改
CASE_SENSITIVE 大小写敏感:1(敏感)/0(不敏感,默认 1 初始化后不可修改
UNICODE_FLAG 字符集:0(GB18030)/1(UTF-8,默认 0 初始化后不可修改
SYSDBA_PWD 管理员密码,长度 9~48 位,不支持特殊字符(默认 SYSDBA001 可修改
LOG_SIZE 日志文件大小(单位 MB,默认 256 可修改
BUFFER 系统缓存大小(单位 MB,默认 1000 可修改

八、注意事项
  1. 密码规则

    • SYSDBA_PWD 必须≥9位,且仅支持字母、数字。
  2. 环境变量格式

    • 必须使用大写(如 PAGE_SIZE 而非 page_size)。
  3. 数据持久化

    • 确保宿主机目录 /opt/data/opt/log 存在且可写。
  4. 网络模式

    • 默认使用 bridge 模式,端口映射为 5236:5236。若需 host 模式,修改配置:
      network_mode: host  
      # 移除 ports 配置  
      

九、故障排查
  1. 容器启动失败

    • 查看日志:docker-compose logs dm8_test
    • 常见原因:密码长度不足、目录权限不足。
  2. 连接超时

    • 检查防火墙是否放行 30236 端口。
  3. 字符集乱码

    • 确保 UNICODE_FLAG=1(UTF-8),客户端工具也需统一编码。

通过以上步骤,即可使用 Docker Compose 完整部署达梦数据库,并保留原有 docker run 参数的全部功能。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐