Apache IoTDB Docker镜像使用全指南
2025-07-09 01:28:10作者:昌雅子Ethen
前言
Apache IoTDB作为一款高性能的时序数据库,提供了便捷的Docker部署方式。本文将详细介绍IoTDB Docker镜像的版本演进、构建方法、运行配置以及客户端连接等核心内容,帮助开发者快速掌握IoTDB的容器化部署。
镜像版本演进
IoTDB的Docker镜像版本经历了几个重要阶段:
-
0.12版本之前:采用统一镜像格式
apache/iotdb:0.<major>.<minor>
-
0.12版本开始:区分单节点和集群模式
- 单节点镜像:
apache/iotdb:0.<major>.<minor>-node
- 集群镜像:
apache/iotdb:0.<major>.<minor>-cluster
- 单节点镜像:
-
1.0.0版本开始:进一步细分为三种镜像
- 配置节点:
apache/iotdb:<version>-confignode
- 数据节点:
apache/iotdb:<version>-datanode
- 单机版(1C1D):
apache/iotdb:<version>-standalone
- 配置节点:
关于latest标签:
- 0.12之前指向最大的
0.<major>.<minor>
版本 - 0.12开始指向最大的
0.<major>.<minor>-node
版本
镜像构建指南
基础构建方法
使用docker build命令构建自定义镜像:
docker build -t my-iotdb:<version> -f Dockerfile-<version>
1.0.0版本特殊构建
对于1.0.0及以上版本,需要使用专门的构建脚本:
cd src/main/DockerCompose
./do-docker-build.sh -t <target> -v <version>
构建前准备:
- 创建
src/main/target
目录 - 将官方下载的zip包放入该目录,包括:
- apache-iotdb--all-bin.zip
- apache-iotdb--confignode-bin.zip
- apache-iotdb--datanode-bin.zip
运行IoTDB服务
单节点运行示例
docker run -d --name iotdb \
-p 6667:6667 \
-p 31999:31999 \
-p 8181:8181 \
-p 5555:5555 \
apache/iotdb:<version>
集群模式运行示例
docker run -d --name iotdb \
-p 6667:6667 \
-p 31999:31999 \
-p 8181:8181 \
-p 5555:5555 \
-p 9003:9003 \
-p 40010:40010 \
apache/iotdb:<version>
端口说明
IoTDB默认使用以下端口:
- 6667:RPC端口(客户端连接)
- 31999:JMX监控端口
- 8086:InfluxDB协议端口
- 8181:系统监控端口
- 5555:数据同步端口
- 9003:集群内部元数据RPC端口
- 40010:集群内部数据RPC端口
数据持久化配置
为了持久化存储IoTDB的数据和日志,可以使用Docker卷映射:
docker run -it \
-v /host/path/iotdb_data:/iotdb/data \
-v /host/path/iotdb_logs:/iotdb/logs \
--name my_iotdb \
apache/iotdb:<version>
其中:
/host/path/iotdb_data
:宿主机上存储数据的目录/host/path/iotdb_logs
:宿主机上存储日志的目录
客户端连接指南
进入容器执行CLI
- 查找运行中的容器ID:
docker ps
- 进入容器并启动CLI:
docker exec -it iotdb /bin/bash
# 然后执行
start-cli.sh # 0.10.x及以上版本
# 或
start-client.sh # 0.9.x及0.8.1版本
直接执行CLI
也可以直接运行CLI而不进入容器:
docker exec -it iotdb start-cli.sh
最佳实践建议
- 生产环境部署:务必配置数据卷映射,确保数据持久化
- 资源限制:根据数据规模合理设置容器的CPU和内存限制
- 网络配置:集群部署时注意容器间网络通信配置
- 版本选择:生产环境建议使用特定版本而非latest标签
通过本文的详细介绍,开发者应该能够全面掌握Apache IoTDB的Docker化部署方法。无论是单节点开发测试还是集群生产部署,Docker都提供了便捷高效的解决方案。