Skip to main content

DatomsDB + Ollama Docker Compose 部署指南

这个指南将帮助您使用Docker Compose部署完整的DatomsDB系统,包括集成的Ollama LLM服务。

🎯 特性

  • 完全容器化部署: 使用Docker Compose一键部署
  • 自动模型配置: 自动下载和配置qwen3:1.7b模型
  • 智能回退机制: 支持多个备用模型
  • 健康检查: 确保所有服务正常启动
  • 持久化存储: 数据和模型持久化保存

🚀 快速开始

前置要求

  • Docker (版本 20.10+)
  • Docker Compose (版本 2.0+)
  • 至少 4GB 可用磁盘空间 (用于模型存储)
  • 至少 2GB 可用内存

一键启动

# 使用便捷脚本启动
./scripts/start-with-ollama.sh

或者手动启动:

# 停止现有服务
docker-compose down

# 启动所有服务
docker-compose up --build -d

# 查看日志
docker-compose logs -f

验证部署

启动后,您可以访问:

📋 服务架构

服务组件

  1. datoms-server: 主要的DatomsDB服务

    • 端口: 9000
    • 提供RESTful API和Web界面
  2. ollama: LLM模型服务

    • 端口: 11434
    • 提供AI模型推理能力
  3. ollama-setup: 模型初始化服务

    • 一次性运行
    • 自动下载和配置模型

网络和存储

  • 网络: datoms-network (bridge网络)
  • 存储卷:
    • datoms-data: DatomsDB数据持久化
    • ollama-data: Ollama模型持久化

🔧 配置说明

模型配置

系统默认使用以下模型优先级:

  1. qwen3:1.7b (主要模型)
  2. qwen2.5:1.5b (备用模型)
  3. deepseek-r1:1.5b (备用模型)

配置文件位置: src/agents/config/agent_config.json

{
"llm_service_url": "http://ollama:11434/api/generate",
"llm_model_name": "qwen3:1.7b",
"llm_chat_endpoint": "http://ollama:11434/api/chat"
}

环境变量

docker-compose.yml中可以配置:

environment:
- PORT=9000
- DATA_DIR=/data
- ENABLE_AUTH=true
- OLLAMA_HOST=http://ollama:11434

🛠️ 管理命令

基本操作

# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 重启服务
docker-compose restart

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f [service-name]

模型管理

# 查看可用模型
curl http://localhost:11434/api/tags

# 拉取新模型
docker exec ollama ollama pull [model-name]

# 测试模型
curl -X POST http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{"model": "qwen3:1.7b", "prompt": "Hello", "stream": false}'

数据管理

# 备份数据
docker run --rm -v datoms-data:/data -v $(pwd):/backup alpine tar czf /backup/datoms-backup.tar.gz /data

# 恢复数据
docker run --rm -v datoms-data:/data -v $(pwd):/backup alpine tar xzf /backup/datoms-backup.tar.gz -C /

🐛 故障排除

常见问题

  1. 服务启动失败

    # 检查端口占用
    sudo netstat -tulpn | grep :9000
    sudo netstat -tulpn | grep :11434

    # 清理并重启
    docker-compose down --volumes
    docker-compose up --build -d
  2. 模型下载失败

    # 查看模型下载日志
    docker-compose logs ollama-setup

    # 手动下载模型
    docker exec ollama ollama pull qwen3:1.7b
  3. 内存不足

    # 检查Docker资源使用
    docker stats

    # 如果需要,可以使用更小的模型
    # 修改 agent_config.json 中的 llm_model_name

日志查看

# 查看所有服务日志
docker-compose logs -f

# 查看特定服务日志
docker-compose logs -f datoms-server
docker-compose logs -f ollama
docker-compose logs -f ollama-setup

健康检查

# 检查服务健康状态
curl http://localhost:9000/api/health
curl http://localhost:11434/api/version

# 检查模型是否可用
curl -s http://localhost:11434/api/tags | jq '.models[].name'

📈 性能优化

资源配置

docker-compose.yml中添加资源限制:

services:
ollama:
deploy:
resources:
limits:
cpus: '2.0'
memory: 4G
reservations:
memory: 2G

模型优化

  • 对于资源受限环境,考虑使用更小的模型
  • 可以通过环境变量动态配置模型
  • 启用模型缓存以提高响应速度

🔒 安全注意事项

  1. 生产环境部署:

    • 修改默认的API密钥和JWT密钥
    • 使用反向代理 (nginx) 处理SSL
    • 限制网络访问权限
  2. 防火墙配置:

    # 只允许必要端口
    sudo ufw allow 9000/tcp # DatomsDB
    sudo ufw allow 11434/tcp # Ollama (如果需要外部访问)

📚 相关文档

🤝 贡献

如果您在使用过程中遇到问题或有改进建议,请提交Issue或Pull Request。