Install InfluxDB using Docker Compose
Use Docker Compose to install and set up InfluxDB v2, the time series platform is purpose-built to collect, store, process and visualize metrics and events.
When you use Docker Compose to create an InfluxDB container, you can use
Compose secrets
to control
access to sensitive credentials such as username, password, and token and
prevent leaking them in your docker inspect
output.
The influxdb
Docker image provides the following environment
variables to use with Compose secrets
:
DOCKER_INFLUXDB_INIT_USERNAME_FILE
: the container’s path to the file that contains the username for your initial user.DOCKER_INFLUXDB_INIT_PASSWORD_FILE
: the container’s path to the file that contains the password for your initial user.DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE
: the container’s path to the file that contains a token to use for your initial Operator token. If you don’t specify an initial token, InfluxDB generates one for you.
Set up using Docker Compose secrets
Follow steps to set up and run InfluxDB using Docker Compose and secrets
:
If you haven’t already, install Docker Desktop for your system.
Copy the following
compose.yaml
into your project directory.# compose.yaml services: influxdb2: image: influxdb:2 ports: - 8086:8086 environment: DOCKER_INFLUXDB_INIT_MODE: setup DOCKER_INFLUXDB_INIT_USERNAME_FILE: /run/secrets/influxdb2-admin-username DOCKER_INFLUXDB_INIT_PASSWORD_FILE: /run/secrets/influxdb2-admin-password DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/influxdb2-admin-token DOCKER_INFLUXDB_INIT_ORG: docs DOCKER_INFLUXDB_INIT_BUCKET: home secrets: - influxdb2-admin-username - influxdb2-admin-password - influxdb2-admin-token volumes: - type: volume source: influxdb2-data target: /var/lib/influxdb2 - type: volume source: influxdb2-config target: /etc/influxdb2 secrets: influxdb2-admin-username: file: ~/.env.influxdb2-admin-username influxdb2-admin-password: file: ~/.env.influxdb2-admin-password influxdb2-admin-token: file: ~/.env.influxdb2-admin-token volumes: influxdb2-data: influxdb2-config:
For each secret in
compose.yaml
, create a file that contains the secret value–for example:~/.env.influxdb2-admin-username
:admin
~/.env.influxdb2-admin-password
:MyInitialAdminPassword
~/.env.influxdb2-admin-token
:MyInitialAdminToken0==
To set up and run InfluxDB, enter the following command in your terminal:
docker compose up influxdb2
At runtime, the influxdb
image:
- Mounts
secrets
files from your host filesystem to/run/secrets/<SECRET_NAME>
in the container. - Assigns the environment variables to the specified files–for example:
environment:
DOCKER_INFLUXDB_INIT_USERNAME_FILE: /run/secrets/influxdb2-admin-username
DOCKER_INFLUXDB_INIT_PASSWORD_FILE: /run/secrets/influxdb2-admin-password
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN_FILE: /run/secrets/influxdb2-admin-token
- Retrieves the secrets from the mounted files and runs setup.
- Starts InfluxDB.
- Runs any custom initialization scripts mounted inside the container’s
/docker-entrypoint-initdb.d/
path.
If successful, InfluxDB initializes the user, password, organization, bucket, and Operator token, and then logs to stdout.
Although Docker prevents inadvertently exposing secrets (for example, in
docker inspect
output), a
user that has access to the running container’s filesystem can view the secrets.
Run InfluxDB CLI commands in a container
After you start a container using the influxdb
Docker Hub image, you can
use docker exec
with the influx
and influxd
CLIs inside the
container.
Manage files in mounted volumes
To copy files, such as the InfluxDB server config.yml
file, between your local
file system and a volume, use the
docker container cp
command.
For more InfluxDB and Docker configuration options,
see the influxdb
Docker Hub image
documentation.
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.