Install and run InfluxDB using Docker
This page documents an earlier version of InfluxDB OSS. InfluxDB 3 Core is the latest stable version.
Install and run InfluxDB OSS v1.x using Docker containers. This guide covers Docker installation, configuration, and initialization options.
Install and run InfluxDB
Pull the InfluxDB v1.x image
docker pull influxdb:1.11.8
Start InfluxDB
Start a basic InfluxDB container with persistent storage:
docker run -p 8086:8086 \
-v $PWD/data:/var/lib/influxdb \
influxdb:1.11.8
InfluxDB is now running and available at http://localhost:8086.
Configure InfluxDB
Using environment variables
Configure InfluxDB settings using environment variables:
docker run -p 8086:8086 \
-v $PWD/data:/var/lib/influxdb \
-e INFLUXDB_REPORTING_DISABLED=true \
-e INFLUXDB_HTTP_AUTH_ENABLED=true \
-e INFLUXDB_HTTP_LOG_ENABLED=true \
influxdb:1.11.8
Using a configuration file
Generate a default configuration file:
docker run --rm influxdb:1.11.8 influxd config > influxdb.conf
Start InfluxDB with your custom configuration:
docker run -p 8086:8086 \
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro \
-v $PWD/data:/var/lib/influxdb \
influxdb:1.11.8
Initialize InfluxDB
Automatic initialization (for development)
Automatic initialization with InfluxDB v1 is not recommended for production. Use this approach only for development and testing.
Automatically create a database and admin user on first startup:
docker run -p 8086:8086 \
-v $PWD/data:/var/lib/influxdb \
-e INFLUXDB_DB=mydb \
-e INFLUXDB_HTTP_AUTH_ENABLED=true \
-e INFLUXDB_ADMIN_USER=admin \
-e INFLUXDB_ADMIN_PASSWORD=supersecretpassword \
influxdb:1.11.8
Environment variables for user creation:
INFLUXDB_USER
: Create a user with no privilegesINFLUXDB_USER_PASSWORD
: Password for the userINFLUXDB_READ_USER
: Create a user who can read fromINFLUXDB_DB
INFLUXDB_READ_USER_PASSWORD
: Password for the read userINFLUXDB_WRITE_USER
: Create a user who can write toINFLUXDB_DB
INFLUXDB_WRITE_USER_PASSWORD
: Password for the write user
Custom initialization scripts
InfluxDB v1.x Docker containers support custom initialization scripts for testing scenarios:
Create an initialization script (init-scripts/setup.iql
):
CREATE DATABASE sensors;
CREATE DATABASE logs;
CREATE USER "telegraf" WITH PASSWORD 'secret123';
GRANT WRITE ON "sensors" TO "telegraf";
CREATE USER "grafana" WITH PASSWORD 'secret456';
GRANT READ ON "sensors" TO "grafana";
GRANT READ ON "logs" TO "grafana";
CREATE RETENTION POLICY "one_week" ON "sensors" DURATION 1w REPLICATION 1 DEFAULT;
Run with initialization scripts:
docker run -p 8086:8086 \
-v $PWD/data:/var/lib/influxdb \
-v $PWD/init-scripts:/docker-entrypoint-initdb.d \
influxdb:1.11.8
Supported script types:
- Shell scripts (
.sh
) - InfluxDB query language files (
.iql
)
Initialization scripts only run on first startup when the data directory is empty. Scripts execute in alphabetical order based on filename.
Access the InfluxDB CLI
To access the InfluxDB command line interface from within the Docker container:
docker exec -it <container-name> influx
Replace <container-name>
with your InfluxDB container name or ID.
Next steps
Once you have InfluxDB running in Docker, see the Get started guide to:
- Create databases
- Write and query data
- Learn InfluxQL basics
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 and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support. Customers using a trial license can email trial@influxdata.com for assistance.