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

在 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.lryc.cn/news/608852.html

相关文章:

  • 关于Hugging Face【常见问题解决方案】
  • Linux网络编程 ---五种IO模型
  • 12.Redis 主从复制
  • LabVIEW驱动点阵实时控制系统
  • 力扣热题100----------141.环形链表
  • Spring MVC 九大组件源码深度剖析(一):MultipartResolver - 文件上传的幕后指挥官
  • 如何查看SoC线程的栈起始地址及大小
  • Mysql的MVCC是什么
  • 主成分分析法 PCA 是什么
  • 2、RabbitMQ的5种模式基本使用(Maven项目)
  • kafka 是一个怎样的系统?是消息队列(MQ)还是一个分布式流处理平台?
  • Linux常用命令分类总结
  • 井盖识别数据集-2,700张图片 道路巡检 智能城市
  • 本地环境vue与springboot联调
  • ThinkPHP 与 Vue.js 结合的全栈开发模式
  • 十八、Javaweb-day18-前端实战-登录
  • 《前端无障碍设计的深层逻辑与实践路径》
  • 【openlayers框架学习】十一:openlayers实战功能介绍与前端设计
  • K8S几种常见CNI深入比较
  • 企业自动化交互体系的技术架构与实现:从智能回复到自动评论—仙盟创梦IDE
  • ThinkPHP8学习篇(一):安装与配置
  • Go语言--语法基础7--函数定义与调用--自定义函数
  • Mysql深入学习:慢sql执行
  • Docker 国内可用镜像
  • ABP VNext + Quartz.NET vs Hangfire:灵活调度与任务管理
  • [嵌入式embed]C51单片机STC-ISP提示:正在检测目标单片机
  • 深度学习(鱼书)day10--与学习相关的技巧(后两节)
  • LWIP从FreeRTOS到uC/OS-III的适配性改动
  • 第六章第三节 TIM 输出比较
  • 关于Web前端安全防御之安全头配置