The Telegraf team at InfluxData has recently started looking at some of the InfluxDB Client libraries. These libraries provide language-specific packages to integrate with the InfluxDB API. These libraries are available for wide range of languages, like Python, Go, C#, Java, JavaScript, and more.
In order to use these libraries I wanted a fast way to launch a known working InfluxDB instance locally to try out these libraries.
InfluxDB 2.x Link to heading
The following creates a running InfluxDB 2.x instance with a known set of credentials ready for connecting and working with it:
|
|
This launches the latest InfluxDB official DockerHub image with a pre-configured user, org, and bucket. This will use the host network to expose the database API and UI over the default port of 8086. On stop, the container is deleted.
Checkout the official InfluxDB Docker image docs for more usage information and see entrypoint.sh for more environmental set up options.
Configuration with InfluxDB 2.x Link to heading
Any InfluxDB configuration setting can be specified as an environment
variable. The variables must be named using the format
INFLUXD_${SNAKE_CASE_NAME}
. The SNAKE_CASE_NAME for an option will be the
option’s name with all dashes -
replaced by underscores _
and in all caps.
See the InfluxDB docs for the full list of configuration settings.
In a more complicated configuration, a user could also mount a configuration file directly to the container instead of specifying a long list of environment variables. This is done by adding a volume to the container to the launch command:
|
|
Initialization Scripts Link to heading
Users can also mount and then running arbitrary scripts to help initialize InfluxDB. This is a great way to seed the database with some arbitrary data or do some additional database or user configuration.
These scripts need to use the .sh
extension and need to be mounted in
/docker-entrypoint-initdb.d
directory. They are executed in lexical sort
order by name.
InfluxDB 1.8 Link to heading
Turning to InfluxDB 1.8, the following creates a running InfluxDB 1.8 instance again with a known set of credentials ready for connecting and interacting with it:
|
|
The above launches InfluxDB 1.8 with an admin user and a testing database. It also uses the systems’s host network to expose the database API over the default port of 8086. On stop, the container is deleted. Unlike InfluxDB 2.x, there is no UI for InfluxDB 1.8. This also enables the flux query support.
For the full list of options and possibilities see the official InfluxDB 1.8 Docker image docs for more image usage information and check out the init-influxdb.sh for more environmental set up options.
Users Link to heading
With InfluxDB 1.8, users were created with a traditional username and password and either had admin, write, or read access. By default, this creates an admin user who has access to everything in the database.
There are three additional permission levels available that a user could use:
- user: full privileges to the created database
|
|
- write: only write access to the created database
|
|
- read: only read access to the created database
|
|
Configuration with InfluxDB 1.8 Link to heading
Any InfluxDB configuration setting can be specified as an environment
variable. The format is INFLUXDB_$SECTION_$NAME
. All dashes -
are replaced
with underscores _
. If the variable is not in a section, then omit that
part.
See the InfluxDB docs for the full list of configuration settings.
If more complicated, a user could also mount a configuration file and then append the configuration location to the launch command:
|
|