InfluxDB: Use Docker Compose for InfluxDB 3 Core
This is how to create an InfluxDB 3 container in Docker, using docker compose.
InfluxDB version 3 is the latest and greatest InfluxDB version. Key features are:
- Diskless architecture with object storage support (or local disk with no dependencies)
- Fast query response times
- Embedded Python VM for plugins and triggers
- Parquet file persistence
- Compatibility with InfluxDB 1.x and 2.x write APIs
If you want to know more of it, see the InfluxDB 3 Core documentation.
To test it from within Docker, you can use this Docker Compose file:
services:
db:
image: influxdb:3-core
ports:
- 8181:8181
environment:
INFLUXDB3_NODE_IDENTIFIER_PREFIX: 00
INFLUXDB3_OBJECT_STORE: memoryPort 8181 will be exposed, and you can connect to it by curl or any other HTTP method, or by using any client that writes data to InfluxDB.
Unfortunately, InfluxDB 3 Core has no web console, as InfluxDB 2 had. But there is a service we can use for that: InfluxDB 3 Explorer:
services:
explorer:
image: quay.io/influxdb/influxdb3-explorer:latest
hostname: influxdb3-explorer
ports:
- 8888:8888
networks:
- proxiable
- influxdb3After pulling the image and starting the container, the web interface will be available using http://<hostname>:8888.
Surely, you can also combine the two services:
networks:
influxdb3:
name: influxdb3
services:
db:
image: influxdb:3-core
hostname: influxdb3
environment:
INFLUXDB3_NODE_IDENTIFIER_PREFIX: 00
INFLUXDB3_OBJECT_STORE: memory
networks:
- influxdb3
explorer:
image: quay.io/influxdb/influxdb3-explorer:latest
hostname: influxdb3-explorer
ports:
- 8888:8888
networks:
- influxdb3After starting these containers by using docker compose pull and docker compose up -d, we'll have to generate an admin token.
To do that, we have to connect to the container and execute this command:
# docker exec -ti <container name> bash
# influxdb3 create token --admin
Token: apiv3_gPXiT-JQENVdveolXNBCOJmU4wUBjs1FrIVr0BwQxHxQlSOC4FowDKUAdkia7k3mQMVkGiI68GMhf2wuv07Yeg
HTTP requests require the following header: "Authorization: Bearer apiv3_gPXiT-JQENVdveolXNBCOJmU4wUBjs1FrIVr0BwQxHxQlSOC4FowDKUAdkia7k3mQMVkGiI68GMhf2wuv07Yeg"
This will grant you access to HTTP/GRPC API.Then, set the environment to allow any changes to the InfluxDB system:
# export INFLUXDB3_AUTH_TOKEN=apiv3_gPXiT-JQENVdveolXNBCOJmU4wUBjs1FrIVr0BwQxHxQlSOC4FowDKUAdkia7k3mQMVkGiI68GMhf2wuv07YegAfter that, we're able to create a database:
# influxdb3 create database metrics
Database "metrics" created successfullyThen, we can connect to the InfluxDB 3 Explorer web console (see above) and configure access to the database:

We can insert the server URL, the name of the database we just created, and the API token. Click Test Connection to see if everything worked. It should look like this:

Now, you can start importing data, and you should see it from within the InfluxDB 3 Explorer.
Unfortunately, not all features we know from InfluxDB2 web interface, exist in this Explorer - it's pssible to access and query data, but there's no bucket or API key, nor user management...