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。这种配置适合需要与其他服务通信的场景。
部署步骤
- 创建 docker-compose-standalone.yml 文件,内容如上
- 创建必要的目录结构:
mkdir -p data logs
- 启动服务:
docker-compose -f docker-compose-standalone.yml up -d
- 验证服务是否正常运行:
应该能看到 iotdb-service 容器正在运行docker ps
常见问题解决
-
端口冲突:如果 6667 端口已被占用,可以修改 ports 配置为其他端口,如
"6668:6667"
-
权限问题:确保 data 和 logs 目录对 Docker 有读写权限
-
网络问题:如果使用外部网络,确保 iotdb 网络已创建:
docker network create --subnet=172.18.0.0/16 iotdb
最佳实践
-
生产环境建议:对于生产环境,建议使用集群部署而非单机部署
-
资源限制:可以在 docker-compose 文件中添加资源限制:
deploy: resources: limits: cpus: '2' memory: 4G
-
版本控制:建议指定具体的 IoTDB 版本而非使用 latest 标签
总结
通过本文介绍的 Docker Compose 方式,您可以快速搭建一个 Apache IoTDB 单机版环境。这种部署方式非常适合开发测试场景,具有配置简单、启动快速、环境隔离等优点。对于更复杂的生产环境需求,可以参考 IoTDB 的集群部署文档进行配置。