🦀 ClawHub
Dolphindb Docker
by @ugpoor
Automate DolphinDB Docker deployment with auto architecture detection (ARM64/x86_64), smart memory allocation (50% rule), and full data persistence.
TERMINAL
clawhub install dolphindb-docker📖 About This Skill
name: dolphindb-docker description: Automate DolphinDB Docker deployment with auto architecture detection (ARM64/x86_64), smart memory allocation (50% rule), and full data persistence. metadata: {"clawdbot":{"emoji":"🐬","os":["macos","linux"],"requires":{"bins":["docker"]},"install":[{"id":"docker-desktop","kind":"manual","label":"Install Docker Desktop","url":"https://www.docker.com/products/docker-desktop/"}]}}
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:8848Python 连接测试
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