达梦 docker-compose 部署

镜像下载

这个没有官方镜像仓库,但可以从官方下载镜像tar, 自己载入

官方镜像地址

https://download.dameng.com/eco/dm8/dm8_20241022_x86_rh6_64_single.tar

下载完传到服务器

或在服务器上执行下载

复制代码
wget -O  dm8_20241022_x86_rh6_64_single.tar https://download.dameng.com/eco/dm8/dm8_20241022_x86_rh6_64_single.tar

载入镜像

复制代码
docker load -i dm8_20241022_x86_rh6_64_single.tar

部署

docker-compose.yml文件

复制代码
version: '3.8'

# 自定义网络,避免和其他容器端口冲突
networks:
  dm8-net:
    driver: bridge

services:
  dm8:
    image: dm8_single:dm8_20241022_rev244896_x86_rh6_64
    container_name: dm8
    # 权限开启,达梦文件权限、内核参数需要
    privileged: true
    # 容器异常自动重启
    restart: unless-stopped
    ports:
      - "5236:5236"
      # 可选:达梦管理工具DmAgent端口,按需开启
      # - "5237:5237"
    environment:
      # 时区统一东八区
      TZ: Asia/Shanghai
      # 达梦动态库路径
      LD_LIBRARY_PATH: /opt/dmdbms/bin
      # 数据库初始化参数
      PAGE_SIZE: 16          # 页大小,支持4/8/16/32,业务推荐16
      EXTENT_SIZE: 32        # 簇大小
      LOG_SIZE: 1024         # 联机日志文件大小MB
      UNICODE_FLAG: 1        # 1=UTF-8编码,中文场景必开
      SYSDBA_PWD: SYSDBA001  # 管理员密码,生产务必修改复杂密码
      INSTANCE_NAME: dm8     # 实例名
      # 补充初始化参数(可选)
      DB_NAME: DMSERVER      # 数据库名
      PORT_NUM: 5236         # 数据库服务端口
      CASE_SENSITIVE: 0      # 0=大小写不敏感(业务常用),1=敏感
    volumes:
      # 持久化数据库数据,宿主机目录提前创建,避免权限报错
      - ./dm8/data:/opt/dmdbms/data
      # 可选:挂载自定义配置文件、备份目录
      # - ./dm8/backup:/opt/dmdbms/backup
      # - ./dm8/config:/opt/dmdbms/config
    # 资源限制,防止达梦耗尽服务器资源
    deploy:
      resources:
        limits:
          cpus: '4.0'
          memory: 4G
        reservations:
          cpus: '2.0'
          memory: 2G
    # 健康检查,监控数据库服务是否正常
    healthcheck:
      test: ["CMD", "/opt/dmdbms/bin/disql", "SYSDBA/SYSDBA001@localhost:5236", "-e", "SELECT 1;"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "5"
    networks:
      - dm8-net

启动

复制代码
docker-compose up -d

测试连接

使用DBeaver连接

用户名:SYSDBA

密码:SYSDBA001