Install and run InfluxDB Enterprise v1 with Docker
InfluxDB v1 Enterprise provides Docker images for both meta nodes and data nodes to simplify cluster deployment and management. Using Docker allows you to quickly set up and run InfluxDB Enterprise clusters with consistent configurations.
Enterprise license required
You must have a valid license to run InfluxDB Enterprise.
- Docker image variants
- Requirements
- Set up an InfluxDB Enterprise cluster with Docker
- Configuration options
- Exposing ports
- Persistent data storage
- Next steps
Docker image variants
InfluxDB Enterprise provides two specialized Docker images:
influxdb:meta: Enterprise meta node package for clusteringinfluxdb:data: Enterprise data node package for clustering
Requirements
- Docker installed and running
- Valid InfluxData license key
- Network connectivity between nodes
- At least 3 meta nodes (odd number recommended)
- At least 2 data nodes
Set up an InfluxDB Enterprise cluster with Docker
- Create a Docker network
- Start meta nodes
- Configure meta nodes to know each other
- Start data nodes
- Add data nodes to the cluster
- Verify the cluster
- Stop and restart InfluxDB v1 Enterprise Containers
Create a Docker network
Create a custom Docker network to allow communication between meta and data nodes:
docker network create influxdbStart meta nodes
Start three meta nodes using the influxdb:meta image.
Each meta node requires a unique hostname and the Enterprise license key:
# Start first meta node
docker run -d \
--name=influxdb-meta-0 \
--network=influxdb \
-h influxdb-meta-0 \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:meta
# Start second meta node
docker run -d \
--name=influxdb-meta-1 \
--network=influxdb \
-h influxdb-meta-1 \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:meta
# Start third meta node
docker run -d \
--name=influxdb-meta-2 \
--network=influxdb \
-h influxdb-meta-2 \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:metaConfigure meta nodes to know each other
From the first meta node, add the other meta nodes to the cluster:
# Add the second meta node
docker exec influxdb-meta-0 \
influxd-ctl add-meta influxdb-meta-1:8091
# Add the third meta node
docker exec influxdb-meta-0 \
influxd-ctl add-meta influxdb-meta-2:8091Start data nodes
Start two or more data nodes using the influxdb:data image:
# Start first data node
docker run -d \
--name=influxdb-data-0 \
--network=influxdb \
-h influxdb-data-0 \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:data
# Start second data node
docker run -d \
--name=influxdb-data-1 \
--network=influxdb \
-h influxdb-data-1 \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:dataAdd data nodes to the cluster
From the first meta node, register each data node with the cluster:
# Add first data node
docker exec influxdb-meta-0 \
influxd-ctl add-data influxdb-data-0:8088
# Add second data node
docker exec influxdb-meta-0 \
influxd-ctl add-data influxdb-data-1:8088Verify the cluster
Check that all nodes are properly added to the cluster:
docker exec influxdb-meta-0 influxd-ctl showExpected output:
Data Nodes
==========
ID TCP Address Version
4 influxdb-data-0:8088 1.x.x-cX.X.X
5 influxdb-data-1:8088 1.x.x-cX.X.X
Meta Nodes
==========
TCP Address Version
influxdb-meta-0:8091 1.x.x-cX.X.X
influxdb-meta-1:8091 1.x.x-cX.X.X
influxdb-meta-2:8091 1.x.x-cX.X.XConfiguration options
Using environment variables
You can configure using environment variables with the format INFLUXDB_<SECTION>_<NAME>.
Common environment variables:
INFLUXDB_REPORTING_DISABLED=trueINFLUXDB_META_DIR=/path/to/metadirINFLUXDB_ENTERPRISE_REGISTRATION_ENABLED=trueINFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key
For all available environment variables, see how to Configure Enterprise.
Using configuration files
You can also mount custom configuration files:
# Mount custom meta configuration
docker run -d \
--name=influxdb-meta-0 \
--network=influxdb \
-h influxdb-meta-0 \
-v /path/to/influxdb-meta.conf:/etc/influxdb/influxdb-meta.conf \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:meta
# Mount custom data configuration
docker run -d \
--name=influxdb-data-0 \
--network=influxdb \
-h influxdb-data-0 \
-v /path/to/influxdb.conf:/etc/influxdb/influxdb.conf \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:dataExposing ports
To access your InfluxDB Enterprise cluster from outside Docker, expose the necessary ports:
# Data node with HTTP API port exposed
docker run -d \
--name=influxdb-data-0 \
--network=influxdb \
-h influxdb-data-0 \
-p 8086:8086 \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:dataPersistent data storage
To persist data beyond container lifecycles, mount volumes:
# Meta node with persistent storage
docker run -d \
--name=influxdb-meta-0 \
--network=influxdb \
-h influxdb-meta-0 \
-v influxdb-meta-0-data:/var/lib/influxdb \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:meta
# Data node with persistent storage
docker run -d \
--name=influxdb-data-0 \
--network=influxdb \
-h influxdb-data-0 \
-v influxdb-data-0-data:/var/lib/influxdb \
-e INFLUXDB_ENTERPRISE_LICENSE_KEY=your-license-key \
influxdb:dataNext steps
Once your InfluxDB Enterprise cluster is running:
- Set up authentication and authorization for your cluster.
- Enable TLS encryption for secure communication.
- Install and set up Chronograf for cluster management and visualization.
- Configure your load balancer to send client traffic to data nodes. For more information, see Data node installation.
- Monitor your cluster for performance and reliability.
- Write data with the InfluxDB API.
- Query data with the InfluxDB API.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB Enterprise v1 and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.