tree: 5ed72718d50cefe9a75e66dea4fbb71ba86ba9e3 [path history] [tgz]
  1. src/
  2. ReadMe.md
docker/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.

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

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

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.

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)

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>

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!