当前位置: 首页 > backend >正文

在 macOS 上通过 Docker 部署DM8 (ARM 架构)

概述

达梦数据库 (DM8) 无法直接在 Apple macOS 操作系统上原生安装,通常需要通过虚拟机(如 Parallels DesktopVMware Fusion)进行部署。另一种更轻量级且受 macOS 支持的方案是利用 Docker 容器技术来构建开发与测试环境。本文档将详细介绍如何在搭载 Apple Silicon 芯片 (ARM 架构) 的 macOS 上,通过 Docker Desktop 安装并运行达梦数据库 DM8

Docker Desktop 安装与配置

  1. 软件下载:
    • 访问 Docker 官方网站下载 Docker Desktop:https://www.docker.com/products/docker-desktop/。

  • 注意: 国内用户可能无法直接访问官网,请确保网络环境允许访问。
  • 下载完成后,选择适用于 Apple silicon (ARM64) 的安装包。

  1. 安装步骤:
    • 双击下载的 .dmg 文件。
    • 将 Docker 图标拖拽到 Applications 文件夹中完成安装。

+ 在应用程序文件夹中找到并启动 Docker Desktop。+ 首次启动时,通常会提示登录 Docker Hub 账户,可选择 跳过 (Skip) 此步骤进行基本使用。

  1. 基本验证:
    • 安装完成后,可通过系统终端 (Terminal) 或 Docker Desktop 自带的终端执行 Docker 命令进行验证(例如 docker --version)。

  • Docker Desktop 界面可直观管理容器和镜像。

导入达梦 DM8 Docker 镜像

  1. 加载镜像文件:
    • 达梦数据库 DM8 的 Docker 镜像文件(如 dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar)。
    • 在终端中使用 docker load 命令导入镜像:
docker load -i dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
- 终端将显示加载过程及最终镜像信息(镜像 ID、标签等)。
rgy@MacBook-Air Downloads % docker load -i dm8_20241230_HWarm_kylin10_64_rq_ent_8.1.4.6_pack20.tar
353c81134611: Loading layer [==================================================>]  68.13MB/68.13MB
a2a1ef173d3f: Loading layer [==================================================>]  13.81MB/13.81MB
3bf081f10a0a: Loading layer [==================================================>]   25.6kB/25.6kB
57a258bbc540: Loading layer [==================================================>]  10.74MB/10.74MB
c6a50133aad7: Loading layer [==================================================>]    693MB/693MB
a968f06b1730: Loading layer [==================================================>]   2.56kB/2.56kB
e7e89f098e9a: Loading layer [==================================================>]   2.56kB/2.56kB
a08640b6af93: Loading layer [==================================================>]   2.56kB/2.56kB
3acf0a3d1475: Loading layer [==================================================>]   5.12kB/5.12kB
6886d5000ac7: Loading layer [==================================================>]   5.12kB/5.12kB
3871deeeb66b: Loading layer [==================================================>]  4.608kB/4.608kB
0d53b70e744c: Loading layer [==================================================>]  3.072kB/3.072kB
a4398027ff10: Loading layer [==================================================>]  15.36kB/15.36kB
3f422d2e61a6: Loading layer [==================================================>]  15.36kB/15.36kB
c827a1081359: Loading layer [==================================================>]   2.56kB/2.56kB
f2e33479badf: Loading layer [==================================================>]   2.56kB/2.56kB
3d6384cf4028: Loading layer [==================================================>]  4.096kB/4.096kB
df481b01e958: Loading layer [==================================================>]  4.096kB/4.096kB
f2e1e05adddb: Loading layer [==================================================>]  4.096kB/4.096kB
Loaded image: dm8:dm8_20241230_rev255012_HWarm_kylin10_64
rgy@MacBook-Air Downloads %
  1. 确认镜像导入成功:
    • 使用 docker images 命令查看本地镜像列表,确认 DM8 镜像已存在:
docker images
# 输出示例:
# REPOSITORY   TAG                                       IMAGE ID       CREATED        SIZE
# dm8          dm8_20241230_rev255012_HWarm_kylin10_64   51453ae9e0ea   7 months ago   782MB

部署 DM8 单机实例

  1. 启动容器命令
    • 使用 docker run 命令启动一个运行 DM8 的容器。务必设置满足复杂度要求的系统管理员 (SYSDBA) 和安全管理员 (SYSAUDITOR) 密码,否则容器可能启动失败。

    • 关键参数说明:

      • -d: 后台运行容器。
      • -p 30236:5236: 将容器内部的 DM8 数据库默认端口 (5236) 映射到宿主机的 30236 端口。
      • --restart=always: 容器退出时自动重启。
      • --name dm8_test: 为容器命名。
      • --privileged=true: 赋予容器较高权限(通常用于数据库容器)。
      • -e : 设置环境变量。
        • MODE=dmsingle: 单机模式。
        • PAGE_SIZE=16: 数据库页大小 (16K)。
        • CASE_SENSITIVE=1: 标识符大小写敏感。
        • UNICODE_FLAG=1: 启用 Unicode 支持。
        • SYSDBA_PWD=Dameng_123: 系统管理员 (SYSDBA) 密码 (请使用强密码)。
        • SYSAUDITOR_PWD=Dameng_123: 安全管理员 (SYSAUDITOR) 密码 (请使用强密码)。
        • LD_LIBRARY_PATH=/opt/dmdbms/bin: 库文件路径。
        • INSTANCE_NAME=dm8_8146: 实例名称。
      • -v: 挂载数据卷。
        • -v /Users/rgy/dmdata:/opt/dmdbms/data: 将宿主机的 /Users/rgy/dmdata 目录挂载到容器内的数据库数据目录 (强烈建议用于持久化数据)。
        • -v dm8:/opt/dmdbms/log: 使用 Docker 管理的卷 dm8 挂载到日志目录 (也可使用主机路径)。
      • dm8:dm8_20241230_rev255012_HWarm_kylin10_64: 指定使用的镜像及标签。
    • 完整启动命令示例:

docker run -d \-p 30236:5236 \--restart=always \--name dm8_test \--privileged=true \-e MODE=dmsingle \-e PAGE_SIZE=16 \-e CASE_SENSITIVE=1 \-e UNICODE_FLAG=1 \-e SYSDBA_PWD=Dameng_123 \-e SYSAUDITOR_PWD=Dameng_123 \-e LD_LIBRARY_PATH=/opt/dmdbms/bin \-e INSTANCE_NAME=dm8_8146 \-v /Users/rgy/dmdata:/opt/dmdbms/data \-v dm8:/opt/dmdbms/log \dm8:dm8_20241230_rev255012_HWarm_kylin10_64
  1. 监控启动日志:
    • 容器启动后,可通过 Docker Desktop 的图形界面查看容器日志,确认数据库初始化是否成功。

  • 成功初始化后,可在挂载的主机目录 /Users/rgy/dmdata 下看到数据库文件:

连接与验证数据库

  1. 通过容器终端连接:
    • 使用Docker Desktop 进入 dm8_test 容器的终端界面。

  • 在容器内使用达梦命令行工具 disql 连接数据库:
cd /opt/dmdbms/bin
./disql SYSDBA/Dameng_123@localhost:5236
  • 执行 SQL 查询验证实例信息(如 SELECT * FROM V$INSTANCE;)。

  1. 使用图形化管理工具 (SQLark):

由于官方达梦管理工具 (DM Manager) 暂无 macOS 版本,可使用 SQLark(https://www.sqlark.com) 工具进行连接管理。

  • 在 SQLark 中新建达梦数据库连接:

主机 (Host): localhostDocker 宿主机的 IP (如果从宿主机外部连接)。

端口 (`Port`): `30236` (即 Docker 映射的宿主机端口)。
用户名 (`Username`): `SYSDBA`
密码 (`Password`): `Dameng_123`
数据库 (`Database`): 通常可留空或尝试 `SYSDBA` (具体根据连接要求)。
  • 填写正确信息后即可连接成功,进行数据库管理操作。

http://www.xdnf.cn/news/16869.html

相关文章:

  • 团队独立思考的力量
  • 2025-0803学习记录21——地表分类产品的精度验证
  • MySQL存储过程和触发器
  • 【网络安全】日志文件格式
  • 「源力觉醒 创作者计划」_文心大模型4.5系列开源模型, 从一行代码到一个生态:聊聊开源战略那些事儿,顺便扯扯文心大模型 4.5 的使用心得
  • 题解:P4447 [AHOI2018初中组] 分组
  • ospf综合
  • NX947NX955美光固态闪存NX962NX966
  • C++ STL 组件及其关系:从模块化设计到图形化展示
  • [硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
  • HTTP数据请求
  • 【密码学】5. 公钥密码
  • 【Linux】多路转接之epoll
  • pytorch简单理解
  • 幂等性介绍和下单接口幂等性保证实现方案
  • python创建一个excel文件
  • realIADD3复现笔记
  • 【BTC】挖矿难度调整
  • AbstractExecutorService:Java并发核心模板解析
  • 入门MicroPython+ESP32:《点亮LED灯》
  • php完整处理word中表单数据的方法
  • K8S部署ELK(一):部署Filebeat日志收集器
  • Vue3+ts自定义指令
  • Linux 动静态库的制作和使用
  • 笔记:C语言中指向指针的指针作用
  • DyWA:用于可推广的非抓握操作的动态自适应世界动作模型
  • 【高等数学】第七章 微分方程——第七节 常系数齐次线性微分方程
  • UniappDay07
  • 电力系统分析学习笔记(二)- 标幺值计算与变压器建模
  • 基于深度学习的医学图像分析:使用GAN实现医学图像增强