首页
/ Apache IoTDB 单机版 Docker 部署指南

Apache IoTDB 单机版 Docker 部署指南

2025-07-09 01:29:26作者:庞队千Virginia

概述

Apache IoTDB 是一款专为物联网场景设计的高性能时序数据库管理系统。本文将详细介绍如何使用 Docker Compose 快速部署 IoTDB 单机版环境,帮助开发者快速搭建开发测试环境。

环境准备

在开始部署前,请确保您的系统已安装以下组件:

  • Docker 18.06 或更高版本
  • Docker Compose 1.25.0 或更高版本

配置文件解析

下面我们来详细解析 docker-compose-standalone.yml 文件的关键配置:

服务定义

services:
  iotdb-service:
    image: apache/iotdb:latest
    hostname: iotdb-service
    container_name: iotdb-service

这部分定义了 IoTDB 服务的基本信息:

  • 使用最新版的官方 IoTDB 镜像
  • 设置容器主机名为 iotdb-service
  • 指定容器名称为 iotdb-service

端口映射

ports:
  - "6667:6667"

将容器内部的 6667 端口(RPC 端口)映射到主机的 6667 端口,这是 IoTDB 默认的客户端连接端口。

环境变量配置

environment:
  - cn_internal_address=iotdb-service
  - cn_internal_port=10710
  - cn_consensus_port=10720
  - cn_seed_config_node=iotdb-service:10710
  - dn_rpc_address=iotdb-service
  - dn_internal_address=iotdb-service
  - dn_rpc_port=6667
  - dn_mpp_data_exchange_port=10740
  - dn_schema_region_consensus_port=10750
  - dn_data_region_consensus_port=10760
  - dn_seed_config_node=iotdb-service:10710

这些环境变量配置了 IoTDB 的各种服务端口和地址:

  • cn_ 开头的变量用于配置节点(Config Node)
  • dn_ 开头的变量用于数据节点(Data Node)
  • 在单机部署中,配置节点和数据节点运行在同一个容器内

数据持久化

volumes:
  - ./data:/iotdb/data
  - ./logs:/iotdb/logs

将容器内的数据和日志目录挂载到宿主机,确保数据持久化:

  • /iotdb/data:存储 IoTDB 的实际数据
  • /iotdb/logs:存储系统运行日志

网络配置

networks:
  iotdb:
    external: true

使用外部定义的 iotdb 网络,IP 地址固定为 172.18.0.6。这种配置适合需要与其他服务通信的场景。

部署步骤

  1. 创建 docker-compose-standalone.yml 文件,内容如上
  2. 创建必要的目录结构:
    mkdir -p data logs
    
  3. 启动服务:
    docker-compose -f docker-compose-standalone.yml up -d
    
  4. 验证服务是否正常运行:
    docker ps
    
    应该能看到 iotdb-service 容器正在运行

常见问题解决

  1. 端口冲突:如果 6667 端口已被占用,可以修改 ports 配置为其他端口,如 "6668:6667"

  2. 权限问题:确保 data 和 logs 目录对 Docker 有读写权限

  3. 网络问题:如果使用外部网络,确保 iotdb 网络已创建:

    docker network create --subnet=172.18.0.0/16 iotdb
    

最佳实践

  1. 生产环境建议:对于生产环境,建议使用集群部署而非单机部署

  2. 资源限制:可以在 docker-compose 文件中添加资源限制:

    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G
    
  3. 版本控制:建议指定具体的 IoTDB 版本而非使用 latest 标签

总结

通过本文介绍的 Docker Compose 方式,您可以快速搭建一个 Apache IoTDB 单机版环境。这种部署方式非常适合开发测试场景,具有配置简单、启动快速、环境隔离等优点。对于更复杂的生产环境需求,可以参考 IoTDB 的集群部署文档进行配置。