Image Docker étendant l'affluxdb officiel avec des variables d'environnement _file à compatible avec les secrets Docker
Cette image se comporte exactement comme décrit dans la documentation des images parentales. La seule différence est que pour toutes les variables d'environnement de mot de passe, il existe une variable d'environnement Password_File correspondante, qui est utilisée pour déterminer un fichier pour lire la valeur du parent, s'il ne soit pas déjà défini.
Description de l'image du parent ci-dessous.
InfluxDB est une base de données de séries chronologiques construite à partir de zéro pour gérer des charges élevées d'écriture et de requête. InfluxDB est censé être utilisé comme magasin de support pour tout cas d'utilisation impliquant de grandes quantités de données horodatrices, y compris la surveillance DevOps, les mesures d'application, les données du capteur IoT et l'analyse en temps réel.
Documentation affluxDB
L'image InfluxDB expose un volume partagé sous /var/lib/influxdb
, vous pouvez donc monter un répertoire hôte à ce point pour accéder aux données de conteneur persistant. Une invocation typique du conteneur peut être:
$ docker run -p 8086:8086
-v $PWD:/var/lib/influxdb
influxdb
Modifiez $PWD
dans le répertoire où vous souhaitez stocker les données associées au conteneur affluxDB.
Vous pouvez également faire contrôler Docker le point de montage du volume en utilisant un volume nommé.
$ docker run -p 8086:8086
-v influxdb:/var/lib/influxdb
influxdb
Les ports suivants sont importants et sont utilisés par InfluxDB.
Le port API HTTP sera automatiquement exposé lors de l'utilisation docker run -P
.
L'interface administratrice n'est pas automatiquement exposée lors de l'utilisation docker run -P
et est désactivée par défaut. L'interface administratrice nécessite que le navigateur Web ait accès à InfluxDB sur le même port dans le conteneur que depuis le navigateur Web. Puisque -P
expose le port HTTP à l'hôte sur un port aléatoire, l'interface administratrice n'est pas compatible avec ce paramètre.
L'interface administratrice est obsolète à 1,1.0 et sera supprimée dans 1.3.0.
Trouver plus sur les points de terminaison et les ports de l'API ici.
InfluxDB peut être configuré à partir d'un fichier de configuration ou en utilisant des variables d'environnement. Pour monter un fichier de configuration et l'utiliser avec le serveur, vous pouvez utiliser cette commande:
Générer le fichier de configuration par défaut:
$ docker run --rm influxdb influxd config > influxdb.conf
Modifiez la configuration par défaut, qui sera désormais disponible sous $PWD
. Démarrez ensuite le conteneur InfluxDB.
$ docker run -p 8086:8086
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro
influxdb -config /etc/influxdb/influxdb.conf
Modifiez $PWD
dans le répertoire où vous souhaitez stocker le fichier de configuration.
Pour les variables d'environnement, le format est INFLUXDB_$SECTION_$NAME
. Tous les tirets ( -
) sont remplacés par des soulignements ( _
). Si la variable n'est pas dans une section, omettez cette partie.
Exemples:
INFLUXDB_REPORTING_DISABLED=true
INFLUXDB_META_DIR=/path/to/metadir
INFLUXDB_DATA_QUERY_LOG_ENABLED=false
En savoir plus sur la configuration de l'influxdb ici
InfluxDB prend en charge le protocole de ligne graphite, mais le service et les ports ne sont pas exposés par défaut. Pour exécuter InfluxDB avec la prise en charge de Graphite activé, vous pouvez soit utiliser un fichier de configuration, soit définir les variables d'environnement appropriées. Exécutez InfluxDB avec la configuration de graphite par défaut:
docker run -p 8086:8086 -p 2003:2003
-e INFLUXDB_GRAPHITE_ENABLED=true
influxdb
Voir le ReadMe sur GitHub pour une documentation plus détaillée pour configurer le service Graphite. Afin de profiter des modèles de graphite, vous devez utiliser un fichier de configuration en diffusant un fichier de configuration par défaut à l'aide des étapes ci-dessus et en modifiant la section [[graphite]]
.
L'interface administratrice est obsolète à 1,1.0 et sera supprimée dans 1.3.0. Il est désactivé par défaut. Si nécessaire, il peut toujours être activé en définissant une variable d'environnement comme ci-dessous:
docker run -p 8086:8086 -p 8083:8083
-e INFLUXDB_ADMIN_ENABLED=true
influxdb
Pour utiliser l'interface administratrice, l'API HTTP et les API de l'interface administratrice doivent être transmises vers le même port.
Création d'une base de données nommée MyDB:
$ curl -G http://localhost:8086/query --data-urlencode " q=CREATE DATABASE mydb "
Insertion dans la base de données:
$ curl -i -XPOST ' http://localhost:8086/write?db=mydb ' --data-binary ' cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 '
En savoir plus à ce sujet dans la documentation officielle
Démarrez le conteneur:
$ docker run --name=influxdb -d -p 8086:8086 influxdb
Exécutez le client Flux dans un autre conteneur:
$ docker run --rm --link=influxdb -it influxdb influx -host influxdb
Pour le moment, vous ne pouvez pas utiliser docker exec
pour exécuter le client Influx, car docker exec
n'alloue pas correctement un TTY. Cela est dû à un bogue actuel dans Docker qui est détaillé dans Docker / Docker # 8755.
L'image InfluxDB contient des fonctionnalités supplémentaires pour initialiser une base de données. Ces options ne sont pas suggérées pour la production, mais sont très utiles lors de l'exécution des instances autonomes pour les tests.
Le script d'initialisation de la base de données ne sera appelé que lors de l'exécution influxd
. Il ne sera pas exécuté lors de l'exécution d'un autre programme.
L'image InfluxDB utilise plusieurs variables d'environnement pour configurer automatiquement certaines parties du serveur. Ils peuvent vous aider à utiliser cette image.
Initialise automatiquement une base de données avec le nom de cette variable d'environnement.
Permet l'authentification. Ceci doit être défini ou auth-enabled = true
doit être défini dans le fichier de configuration pour toutes les options liées à l'authentification ci-dessous pour fonctionner.
Le nom de l'utilisateur administrateur à créer. Si cela n'est pas défini, aucun utilisateur d'administration n'est créé.
Le mot de passe de l'utilisateur administrateur configuré avec INFLUXDB_ADMIN_USER
. Si cela n'est pas défini, un mot de passe aléatoire est généré et imprimé pour standard.
Le nom d'un utilisateur à créer sans privilèges. Si INFLUXDB_DB
est défini, cet utilisateur sera accordé des autorisations de lecture et d'écriture pour cette base de données.
Le mot de passe pour l'utilisateur configuré avec INFLUXDB_USER
. Si cela n'est pas défini, un mot de passe aléatoire est généré et imprimé pour standard.
Le nom d'un utilisateur à créer avec des privilèges de lecture sur INFLUXDB_DB
. Si INFLUXDB_DB
n'est pas défini, cet utilisateur n'aura pas d'autorisations accordées.
Le mot de passe pour l'utilisateur configuré avec INFLUXDB_READ_USER
. Si cela n'est pas défini, un mot de passe aléatoire est généré et imprimé pour standard.
Le nom d'un utilisateur à créer avec des privilèges d'écriture sur INFLUXDB_DB
. Si INFLUXDB_DB
n'est pas défini, cet utilisateur n'aura pas d'autorisations accordées.
Le mot de passe pour l'utilisateur configuré avec INFLUXDB_WRITE_USER
. Si cela n'est pas défini, un mot de passe aléatoire est généré et imprimé pour standard.
Si l'image Docker trouve des fichiers avec les extensions .sh
ou .iql
à l'intérieur du dossier /docker-entrypoint-initdb.d
, il les exécutera. L'ordre dans lequel ils sont exécutés sont déterminés par le shell. Il s'agit généralement d'un ordre alphabétique.
Pour initialiser manuellement la base de données et quitter, le script /init-influxdb.sh
peut être utilisé directement. Il faut les mêmes paramètres que la commande influxd run
. Par exemple:
$ docker run --rm
-e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_ENABLED=true
-e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_USER=supersecretpassword
-e INFLUXDB_USER=telegraf -e INFLUXDB_USER_PASSWORD=secretpassword
-v $PWD:/var/lib/influxdb
/init-influxdb.sh
Ce qui précède créerait la base de données db0
, créerait un utilisateur d'administration avec le mot de passe supersecretpassword
, puis créera l'utilisateur telegraf
avec le mot de passe secret de votre télégraf. Il quitterait ensuite et laisserait tous les fichiers qu'il a créés dans le volume que vous avez monté.
Les images influxdb
sont disponibles dans de nombreuses saveurs, chacune conçue pour un cas d'utilisation spécifique.
influxdb:<version>
Ceci est l'image Defacto. Si vous n'êtes pas sûr de vos besoins, vous voulez probablement utiliser celui-ci. Il est conçu pour être utilisé à la fois comme conteneur à lancer (montez votre code source et démarrez le conteneur pour démarrer votre application), ainsi que la base pour créer d'autres images.
influxdb:alpine
Cette image est basée sur le populaire projet Alpine Linux, disponible dans l'image officielle alpine
. Alpine Linux est beaucoup plus petit que la plupart des images de base de distribution (~ 5 Mo), et conduit ainsi à des images beaucoup plus minces en général.
Cette variante est fortement recommandée lorsque la taille finale de l'image est aussi petite que possible est souhaitée. La principale mise en garde à noter est qu'elle utilise MUSL LIBC au lieu de GLIBC et d'amis, de sorte que certains logiciels peuvent rencontrer des problèmes en fonction de la profondeur de leurs exigences de LIBC. Cependant, la plupart des logiciels n'ont pas de problème avec cela, donc cette variante est généralement un choix très sûr. Voir ce fil de commentaires de Hacker News pour plus de discussions sur les problèmes qui pourraient survenir et certaines comparaisons pro / con à utiliser des images alpines.
Pour minimiser la taille de l'image, il est rare que des outils connexes supplémentaires (tels que git
ou bash
) soient inclus dans les images alpines. En utilisant cette image comme base, ajoutez les choses dont vous avez besoin dans votre propre dockerfile (voir la description de l'image alpine
pour des exemples de la façon d'installer des packages si vous n'êtes pas familier).
Affichez les informations de licence pour le logiciel contenu dans cette image.
Comme pour toutes les images Docker, celles-ci contiennent probablement également d'autres logiciels qui peuvent être sous d'autres licences (comme Bash, etc. à partir de la distribution de base, ainsi que toutes les dépendances directes ou indirectes du logiciel principal contenu).
Certaines informations supplémentaires de licence qui ont pu être détectées automatiquement pourraient être trouvées dans le répertoire influxdb/
répertoire du référentiel repo-info
.
Quant à toute utilisation d'image prédéfinie, il est de la responsabilité de l'utilisateur d'image de s'assurer que toute utilisation de cette image est conforme à toute licence pertinente pour tous les logiciels contenus.