前言:

Docker部署指导 | IoTDB Website

本文基于 IoTDB 官网的 Docker 安装教程进行二次整理与改写,对原教程中部分错误内容及因 Docker 版本更新导致的命令不兼容问题进行了优化。

1.拉取镜像文件

Apache IoTDB的Docker镜像已经上传至 https://hub.docker.com/r/apache/iotdb 。

以获取1.3.2版本为例,拉取镜像命令:

docker pull apache/iotdb:1.3.2-standalone

查看镜像:

docker images

2.创建docker bridge网络

docker network create --driver=bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1  iotdb

3.编写docker-compose的yml文件

这里我们以把IoTDB安装目录和yml文件统一放在/docker-iotdb文件夹下为例:

文件目录结构为:/docker-iotdb/iotdb/docker-iotdb/docker-compose-standalone.yml

# docker-iotdb为根目录下文件夹
docker-iotdb:
├── iotdb  #iotdb安装目录
│── docker-compose-standalone.yml #单机版docker-compose的yml文件

完整的docker-compose-standalone.yml 内容如下:

version: "3"
# 在 Docker Compose v2 中,version: 这个字段已经废弃,可以删掉。
services:
  iotdb-service:
    image: apache/iotdb:1.3.2-standalone #使用的镜像
    hostname: iotdb
    container_name: iotdb
    restart: always       
    ports:
      - "6667:6667"
    environment:
      - cn_internal_address=iotdb
      - cn_internal_port=10710
      - cn_consensus_port=10720
      - cn_seed_config_node=iotdb:10710
      - dn_rpc_address=iotdb
      - dn_internal_address=iotdb
      - dn_rpc_port=6667
      - dn_internal_port=10730
      - dn_mpp_data_exchange_port=10740
      - dn_schema_region_consensus_port=10750
      - dn_data_region_consensus_port=10760
      - dn_seed_config_node=iotdb:10710
    privileged: true
    volumes:
        - ./iotdb/data:/iotdb/data
        - ./iotdb/logs:/iotdb/logs
    networks:
      iotdb:
        ipv4_address: 172.18.0.6
    # Note: Some environments set an extremely high container nofile limit (~2^30 = 1073741824).
    # This can make the startup step "Checking whether the ports are already occupied..." appear to hang (lsof slow).
    # If you see that line for a long time, lower the nofile limit by uncommenting below:
    # ulimits:
    #   nofile:
    #     soft: 1048576
    #     hard: 1048576
networks:
  iotdb:
    external: true

4.启动IoTDB

使用下面的命令启动:

cd /docker-iotdb
docker-compose -f docker-compose-standalone.yml up  -d  #后台启动

Docker 从 v20.10+ 以后,官方已经把 docker-compose 整合进 Docker 本体,不再单独安装 docker-compose,而是改成:

docker compose
注意:中间是空格,不是中划线

5.验证部署

查看日志,有如下字样,表示启动成功

docker logs -f iotdb-datanode #查看日志命令
2024-07-21 08:22:38,457 [main] INFO  o.a.i.db.service.DataNode:227 - Congratulations, IoTDB DataNode is set up successfully. Now, enjoy yourself!
官方示例中使用命令 docker logs -f iotdb-datanode
但在实际单机部署时应执行 docker logs -f iotdb

进入容器,查看服务运行状态

查看启动的容器

docker ps

进入容器, 通过cli登录数据库, 使用show cluster命令查看服务状态

docker exec -it iotdb  /bin/bash         #进入容器
./start-cli.sh -h iotdb                  #登录数据库
IoTDB> show cluster                      #查看服务状态

可以看到服务状态都是running, 说明IoTDB部署成功。

6.映射/conf目录(可选)

后续如果想在物理机中直接修改配置文件,可以把容器中的/conf文件夹映射出来,分三步:

步骤一:拷贝容器中的/conf目录到/docker-iotdb/iotdb/conf

docker cp iotdb:/iotdb/conf /docker-iotdb/iotdb/conf

步骤二:在docker-compose-standalone.yml中添加映射

    volumes:
        - ./iotdb/conf:/iotdb/conf   #增加这个/conf文件夹的映射
        - ./iotdb/data:/iotdb/data
        - ./iotdb/logs:/iotdb/logs

步骤三:重新启动IoTDB

docker-compose  -f docker-compose-standalone.yml  up  -d

更多推荐