Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

ReadMe.md

Docker image version definition

Before v0.12, Apache IoTDB's docker image name and version format is: apache/iotdb:0.<major>.<minor>.

From 0.12 on, we release two images: one is for a single node, and the other is for the cluster mode. The format is: apache/iotdb:0.<major>.<minor>-node and apache/iotdb:0.<major>.<minor>-cluster.

From 1.0.0, we split 3 kinds of images: datanode, confignode and all of them in one image called 1C1D. The format is: apache/iotdb:<version>-confignode,apache/iotdb:<version>-datanode and apache/iotdb:<version>-standalone.

From 2.0.5, we maintain 4 images: datanode, confignode, standalone and ainode. The format is: apache/iotdb:<version>-datanode, apache/iotdb:<version>-confignode, apache/iotdb:<version>-ainode and apache/iotdb:<version>-standalone

The definition of tag "latest"

Before v0.12, the "latest" tag will forward to the largest apache/iotdb:0.<major>.<minor>.

From 0.12 on, the "latest" tag will forward to the largest apache/iotdb:0.<major>.<minor>-node.

How to build

docker build -t THE_DOCKER_IMAGE_NAME:THE_VERSION -f THE_DOCKER_FILE_NAME

e.g.,

docker build -t my-iotdb:<version> -f Dockerfile-<version>
# for 1.0.0
cd src/main/DockerCompose
./do-docker-build.sh -t <target> -v <version>
e.g.
./do-docker-build.sh -t standalone -v 1.0.0
# for ainode, start from 2.0.5
./do-docker-build.sh -t ainode -v 2.0.5-SNAPSHOT
# for ainode, start from 2.0.8
cd src/main
./build-ainode.sh -v 2.0.8-SNAPSHOT -d /data/ainode

Notice: Make directory of src/main/target and put the zip file downloading from the official download page. e.g.

$ ls -hl target/
total 215M
-rw-r--r-- 1 root root 75M Nov 30 20:04 apache-iotdb-1.0.0-all-bin.zip
-rw-r--r-- 1 root root 69M Dec  1 17:12 apache-iotdb-1.0.0-confignode-bin.zip
-rw-r--r-- 1 root root 73M Dec  1 17:13 apache-iotdb-1.0.0-datanode-bin.zip
-rw-r--r-- 1 root root 329K  7 15 17:12 apache-iotdb-2.0.5-SNAPSHOT-ainode-bin.zip

To avoid mannually copy these files, you can run our do-docker-build.sh with argument -b.

How to run IoTDB server

Actually, we maintain a repo on dockerhub, so that you can get the docker image directly.

For example,

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>

Since 1.0.0, see offical documents.

How to register AINode to IoTDB cluster

Register AINode to the existing IoTDB cluster

Please download docker-compose-ainode.yml in docker/src/main/DockerCompose first. After replace the correct IoTDB cluster configurations, run

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

Start from v2.0.7, run

docker run -d \
  --name iotdb-ainode \
  --network host \
  -p 10810:10810 \
  -p 8080:8080 \
  -e AIN_SEED_CONFIG_NODE=127.0.0.1:10710 \
  -e AIN_RPC_ADDRESS=127.0.0.1 \
  -e AIN_RPC_PORT=10810 \
  -e AIN_CLUSTER_INGRESS_ADDRESS=127.0.0.1 \
  -e AIN_CLUSTER_INGRESS_PORT=6667 \
  -e AIN_CLUSTER_INGRESS_USERNAME=root \
  -e AIN_CLUSTER_INGRESS_PASSWORD=root \
  apache/iotdb:2.0.7-SNAPSHOT-ainode

Quick start

We provide docker-compose-cluster-1c1d1a.yml in docker/src/main/DockerCompose. Downloading this yaml file, both standalone and ainode docker first. Subsequently, you can easily obtain a IoTDB cluster, which consists of a ConfigNode, a DataNode and a AINode, in your local machine.

Port description

By default, the ports that IoTDB uses are:

  • 6667: RPC port
  • 31999: JMX port
  • 8086: InfluxDB Protocol port
  • 8181: Monitor port
  • 5555: Data sync port
  • 9003: internal metadata rpc port (for cluster)
  • 40010: internal data rpc port (for cluster)
  • 10810: internal rpc port (for ainode)

How to configure docker volumes

The instructions below show how to store the output data and logs of IoTDB to two folders called iotdb_data and iotdb_logs respectively.

/D/docker/iotdb_data and /D/docker/iotdb_logs can be changed to any local directory of your own host.

docker run -it -v /D/docker/iotdb_data:/iotdb/data -v /D/docker/iotdb_logs:/iotdb/logs --name 123 apache/iotdb:<version>

Similarly, you can customize the directories of the ainode through the following commands.

docker run -it -v /D/docker/ainode_data:/ainode/data -v /D/docker/ainode_logs:/ainode/logs --name 123 apache/iotdb:<version>

How to run IoTDB client

Suppose you have run an IoTDB Server in docker

  1. Use docker ps to find out the CONTAINER ID e.g.,
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                NAMES
c82321c70137        apache/iotdb:<version>  "/iotdb/sbin/start-s…"   12 minutes ago      Up 12 minutes       0.0.0.0:6667->6667/tcp, 0.0.0.0:8181->8181/tcp, 5555/tcp, 0.0.0.0:31999->31999/tcp   iotdb
  1. Use docker exec to attach the container:
docker exec -it iotdb /bin/bash

Then, for the latest version (or, >=0.10.x), run start-cli.sh, for version 0.9.x and 0.8.1, run start-client.sh.

Or,

docker exec -it iotdb start-cli.sh

Enjoy it!