Docker -Bild, das den offiziellen InstruxDB mit Umgebungsvariablen _file erweitert, um mit Docker -Geheimnissen kompatibel zu sein
Dieses Bild verhält sich genau wie in der Dokumentation der übergeordneten Bilder beschrieben. Der einzige Unterschied besteht darin, dass für alle Variablen für die Kennwortumgebung eine entsprechende Variable für passwart_file vorhanden ist, mit der eine Datei zum Lesen des Werts des übergeordneten Werts bestimmt wird, falls sie nicht bereits festgelegt werden sollte.
Bildbeschreibung des Elternteils unten.
InfluxDB ist eine Zeitreihendatenbank, die von Grund auf erstellt wurde, um hohe Schreib- und Abfragenlasten zu bearbeiten. InfluxDB soll als Backing-Store für alle Anwendungsfälle verwendet werden, die große Mengen an Zeitstempeldaten umfassen, einschließlich DevOps-Überwachung, Anwendungsmetriken, IoT-Sensordaten und Echtzeitanalysen.
InfluxDB -Dokumentation
Das InfluxDB -Image enthält ein gemeinsames Volumen unter /var/lib/influxdb
, sodass Sie ein Hostverzeichnis bis zu diesem Punkt montieren können, um auf persistierte Containerdaten zuzugreifen. Eine typische Aufruf des Behälters kann sein:
$ docker run -p 8086:8086
-v $PWD:/var/lib/influxdb
influxdb
Ändern Sie $PWD
in das Verzeichnis, in dem Sie Daten speichern möchten, die mit dem InfluxDB -Container verbunden sind.
Sie können auch Docker den Volumenmontagepunkt steuern lassen, indem Sie ein benanntes Volumen verwenden.
$ docker run -p 8086:8086
-v influxdb:/var/lib/influxdb
influxdb
Die folgenden Ports sind wichtig und werden von InfluxDB verwendet.
Der HTTP -API -Port wird automatisch ausgesetzt, wenn docker run -P
verwendet wird.
Die Administratorschnittstelle wird bei Verwendung von docker run -P
nicht automatisch freigelegt und standardmäßig deaktiviert. Die AdminStrator -Schnittstelle erfordert, dass der Webbrowser zu Zugriff auf InfluxDB im selben Port im Container wie aus dem Webbrowser zugreifen kann. Da -P
den HTTP -Port dem Host in einem zufälligen Port aussetzt, ist die Administratorschnittstelle nicht mit dieser Einstellung kompatibel.
Die Administratorschnittstelle ist ab 1.1.0 veraltet und wird in 1.3.0 entfernt.
Weitere Informationen zu API -Endpunkten und -Ports finden Sie hier.
InfluxDB kann entweder aus einer Konfigurationsdatei konfiguriert werden oder verwendeten Umgebungsvariablen. Um eine Konfigurationsdatei zu montieren und mit dem Server zu verwenden, können Sie diesen Befehl verwenden:
Generieren Sie die Standardkonfigurationsdatei:
$ docker run --rm influxdb influxd config > influxdb.conf
Ändern Sie die Standardkonfiguration, die jetzt unter $PWD
verfügbar ist. Starten Sie dann den InfluxDB -Behälter.
$ docker run -p 8086:8086
-v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro
influxdb -config /etc/influxdb/influxdb.conf
Ändern Sie $PWD
in das Verzeichnis, in dem Sie die Konfigurationsdatei speichern möchten.
Für Umgebungsvariablen lautet das Format INFLUXDB_$SECTION_$NAME
. Alle Striche ( -
) werden durch Unterstriche ( _
) ersetzt. Wenn die Variable nicht in einem Abschnitt ist, lassen Sie diesen Teil weg.
Beispiele:
INFLUXDB_REPORTING_DISABLED=true
INFLUXDB_META_DIR=/path/to/metadir
INFLUXDB_DATA_QUERY_LOG_ENABLED=false
Weitere Informationen zum Konfigurieren von InfluxDB finden Sie hier
InfluxDB unterstützt das Graphit -Linienprotokoll, der Dienst und die Ports sind jedoch standardmäßig nicht freigelegt. Um InfluxDB mit aktivierter Graphit -Unterstützung auszuführen, können Sie entweder eine Konfigurationsdatei verwenden oder die entsprechenden Umgebungsvariablen festlegen. Führen Sie InfluxDB mit der Standard -Graphit -Konfiguration aus:
docker run -p 8086:8086 -p 2003:2003
-e INFLUXDB_GRAPHITE_ENABLED=true
influxdb
Weitere detailliertere Dokumentation finden Sie im README in GitHub, um den Graphit -Dienst einzurichten. Um Graphit -Vorlagen zu nutzen, sollten Sie eine Konfigurationsdatei verwenden, indem Sie eine Standardkonfigurationsdatei unter Verwendung der obigen Schritte ausgeben und den Abschnitt [[graphite]]
ändern.
Die Administratorschnittstelle ist ab 1.1.0 veraltet und wird in 1.3.0 entfernt. Es ist standardmäßig deaktiviert. Bei Bedarf kann es weiterhin aktiviert werden, indem eine Umgebungsvariable wie unten festgelegt wird:
docker run -p 8086:8086 -p 8083:8083
-e INFLUXDB_ADMIN_ENABLED=true
influxdb
Um die Administratorschnittstelle zu verwenden, müssen sowohl die HTTP -API als auch die Administrator -Schnittstellen -APIs an denselben Port weitergeleitet werden.
Erstellen einer DB namens MyDB:
$ curl -G http://localhost:8086/query --data-urlencode " q=CREATE DATABASE mydb "
Einfügen in die DB:
$ curl -i -XPOST ' http://localhost:8086/write?db=mydb ' --data-binary ' cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000 '
Lesen Sie mehr darüber in der offiziellen Dokumentation
Starten Sie den Container:
$ docker run --name=influxdb -d -p 8086:8086 influxdb
Führen Sie den Client des Zustroms in einem anderen Behälter aus:
$ docker run --rm --link=influxdb -it influxdb influx -host influxdb
Im Moment können Sie docker exec
nicht verwenden, um den Influx -Kunden auszuführen, da docker exec
eine TTY nicht ordnungsgemäß zuordnet. Dies ist auf einen aktuellen Fehler in Docker zurückzuführen, der in Docker/Docker#8755 aufgeführt ist.
Das InfluxDB -Bild enthält eine zusätzliche Funktionalität zur Initialisierung einer Datenbank. Diese Optionen werden für die Produktion nicht vorgeschlagen, sind aber bei der Ausführung von Standalone -Instanzen zum Testen sehr nützlich.
Das Datenbankinitialisierungsskript wird nur beim Ausführen von influxd
aufgerufen. Es wird nicht ausgeführt, wenn ein anderes Programm ausgeführt wird.
Das InfluxDB -Bild verwendet mehrere Umgebungsvariablen, um bestimmte Teile des Servers automatisch zu konfigurieren. Sie können Ihnen bei der Verwendung dieses Bildes erheblich helfen.
Initialisiert automatisch eine Datenbank mit dem Namen dieser Umgebungsvariablen.
Aktiviert die Authentifizierung. Entweder muss dies festgelegt werden oder auth-enabled = true
muss in der Konfigurationsdatei festgelegt werden, damit die nachstehenden authentifizierungsbezogenen Optionen für die Arbeit sind.
Der Name des zu erstellenden Administratorbenutzers. Wenn dies nicht festgelegt ist, wird kein Administrator erstellt.
Das Kennwort für den mit INFLUXDB_ADMIN_USER
konfigurierten Administrator -Benutzer. Wenn dies nicht festgelegt ist, wird ein zufälliges Passwort generiert und auf Standard ausgedruckt.
Der Name eines Benutzers, der ohne Privilegien erstellt wird. Wenn INFLUXDB_DB
festgelegt ist, erhält dieser Benutzer Lese- und Schreibberechtigungen für diese Datenbank.
Das Kennwort für den mit INFLUXDB_USER
konfigurierten Benutzer. Wenn dies nicht festgelegt ist, wird ein zufälliges Passwort generiert und auf Standard ausgedruckt.
Der Name eines Benutzers, der mit Leseberechtigungen auf INFLUXDB_DB
erstellt wird. Wenn INFLUXDB_DB
nicht festgelegt ist, hat dieser Benutzer keine Erteilungen.
Das Kennwort für den mit INFLUXDB_READ_USER
konfigurierten Benutzer. Wenn dies nicht festgelegt ist, wird ein zufälliges Passwort generiert und auf Standard ausgedruckt.
Der Name eines Benutzers, der mit Schreibberechtigungen auf INFLUXDB_DB
erstellt wird. Wenn INFLUXDB_DB
nicht festgelegt ist, hat dieser Benutzer keine Erteilungen.
Das Kennwort für den mit INFLUXDB_WRITE_USER
konfigurierten Benutzer. Wenn dies nicht festgelegt ist, wird ein zufälliges Passwort generiert und auf Standard ausgedruckt.
Wenn das Docker-Bild Dateien mit den Erweiterungen .sh
oder .iql
im Ordner /docker-entrypoint-initdb.d
findet, wird sie ausgeführt. Die Reihenfolge, in der sie ausgeführt werden, wird durch die Hülle bestimmt. Dies ist normalerweise eine alphabetische Reihenfolge.
Um die Datenbank und das Beenden manuell zu initialisieren, kann das Skript /init-influxdb.sh
direkt verwendet werden. Es dauert die gleichen Parameter wie der Befehl influxd run
. Als Beispiel:
$ 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
Das obige würde die Datenbank db0
erstellen, einen Administratorbenutzer mit dem Kennwort supersecretpassword
erstellen und dann den telegraf
-Benutzer mit dem geheimen Passwort Ihres Telegraf -Kennworts erstellen. Es würde dann alle Dateien beenden und hinterlassen, die in dem von Ihnen montierten Volumen erstellt wurden.
Die influxdb
-Bilder sind in vielen Geschmacksrichtungen erhältlich, die jeweils für einen bestimmten Anwendungsfall ausgelegt sind.
influxdb:<version>
Dies ist das Defacto -Bild. Wenn Sie sich nicht sicher sind, welche Bedürfnisse Ihre Bedürfnisse sind, möchten Sie wahrscheinlich diesen verwenden. Es ist so konzipiert, dass es sowohl als Wurfbehälter verwendet wird (montieren Sie Ihren Quellcode und starten Sie den Container, um Ihre App zu starten) als auch als Basis, um andere Bilder auszubauen.
influxdb:alpine
Dieses Bild basiert auf dem beliebten Alpine Linux -Projekt, das im offiziellen alpine
-Bild verfügbar ist. Alpine Linux ist viel kleiner als die meisten Verteilungsbasisbilder (~ 5 MB) und führt somit zu viel schlankeren Bildern im Allgemeinen.
Diese Variante wird dringend empfohlen, wenn die endgültige Bildgröße so klein wie möglich ist. Die wichtigste Einschränkung ist, dass sie Musl LIBC anstelle von Glibc und Freunden verwendet, sodass eine bestimmte Software je nach Tiefe ihrer LIBC -Anforderungen auf Probleme stoßen kann. Die meisten Software haben jedoch kein Problem damit, daher ist diese Variante normalerweise eine sehr sichere Wahl. In diesem Hacker-Nachrichten-Kommentar-Thread finden Sie weitere Diskussionen über die Probleme, die auftreten könnten, und einige Pro/Con-Vergleiche bei der Verwendung von alpinenbasierten Bildern.
Um die Bildgröße zu minimieren, ist es ungewöhnlich, dass zusätzliche verwandte Tools (wie git
oder bash
) in alpine basierte Bilder aufgenommen werden. Fügen Sie dieses Bild als Basis mithilfe der Dinge hinzu, die Sie in Ihrer eigenen Dockerfile benötigen (siehe die Beschreibung der alpine
-Bild, um Beispiele für die Installation von Paketen zu installieren, wenn Sie nicht vertraut sind).
Lizenzinformationen für die in diesem Bild enthaltene Software anzeigen.
Wie bei allen Docker -Bildern enthalten diese wahrscheinlich auch andere Software, die unter anderen Lizenzen (z. B. Bash usw. aus der Basisverteilung sowie alle direkten oder indirekten Abhängigkeiten der enthaltenen Primärsoftware) stehen können.
Einige zusätzliche Lizenzinformationen, die automatisch zu erkennen waren, können im influxdb/
Directory des repo-info
Repositorys gefunden werden.
Bei jeder vorgefertigten Bildnutzung liegt es in der Verantwortung des Bildnutzers, sicherzustellen, dass jede Verwendung dieses Bildes relevante Lizenzen für alle darin enthaltenen Software entspricht.