Dolphindb Docker

Automate DolphinDB Docker deployment with auto architecture detection (ARM64/x86_64), smart memory allocation (50% rule), and full data persistence.

Audits

Warn

Install

openclaw skills install dolphindb-docker

DolphinDB Docker 部署技能

功能说明

自动化部署 DolphinDB Docker 容器,包括:

  1. 自动检测本机芯片架构(ARM64/x86_64)
  2. 自动读取本机内存并按 50% 原则分配
  3. 下载指定版本的 DolphinDB 官方 Docker 镜像
  4. 完整持久化 /data/ddb/server/ 目录到主机
  5. License 指纹采集挂载 /etc 目录

使用方法

基础部署

# 部署最新版(自动检测架构和内存)
./deploy-dolphindb.sh

# 部署指定版本
./deploy-dolphindb.sh v2.00.7

# 自定义内存(GB)
./deploy-dolphindb.sh v2.00.7 16

# 自定义数据目录
./deploy-dolphindb.sh v2.00.7 8 /path/to/data

Python 调用

import subprocess

# 部署 DolphinDB
subprocess.run([
    './skills/dolphindb-docker/deploy-dolphindb.sh',
    'v2.00.7',  # 版本
    '8',        # 内存 GB(可选,默认自动计算)
    '/Users/mac/Documents/dolphindb_docker_server'  # 数据目录(可选)
])

文件结构

dolphindb-docker/
├── SKILL.md              # 技能说明(本文件)
├── deploy-dolphindb.sh   # 部署脚本
└── README.md             # 详细文档

部署逻辑

1. 芯片检测

uname -m
# arm64  → 使用 dolphindb/dolphindb-arm64
# x86_64 → 使用 dolphindb/dolphindb

2. 内存计算

# 读取本机内存(字节)
mem_bytes=$(sysctl -n hw.memsize)  # macOS
# 或
mem_bytes=$(grep MemTotal /proc/meminfo | awk '{print $2 * 1024}')  # Linux

# 转换为 GB 并取 50%
mem_gb=$((mem_bytes / 1024 / 1024 / 1024))
mem_limit=$((mem_gb / 2))

3. Docker 启动命令

docker run -itd --name dolphindb \
  --hostname cnserver10 \
  --platform <架构> \
  -m <内存>g \
  -p 8848:8848 \
  -p 8849:8849 \
  -v /etc:/dolphindb/etc \
  -v <主机数据目录>:/data/ddb/server \
  dolphindb/<镜像>:<版本>

验证部署

# 检查容器状态
docker ps --filter name=dolphindb

# 查看日志
docker logs dolphindb

# 访问 Web UI
curl http://localhost:8848

# Python 连接测试
python3 -c "
import dolphindb as ddb
s = ddb.session()
s.connect('localhost', 8848)
print(s.run('version()'))
"

注意事项

  1. 首次部署:数据目录会自动初始化
  2. 升级版本:保留数据目录,只需更换镜像版本
  3. 内存调整:修改 maxMemSize 配置文件后重启容器
  4. 端口冲突:如 8848 被占用,修改 -p 参数

故障排查

容器启动失败

# 查看详细日志
docker logs dolphindb

# 检查端口占用
lsof -i:8848

内存不足

# 降低内存限制
docker run -m 4g ...

架构不匹配

# 确认本机架构
uname -m

# 使用对应镜像
# ARM64: dolphindb/dolphindb-arm64
# x86_64: dolphindb/dolphindb