Untersuchungen haben ergeben, dass die anonymen Bände von influxdbund erstellt wurden grafana/grafana.
Anonyme Volumes erhalten keinen expliziten Namen, wenn sie zum ersten Mal in einen Container eingebunden werden. Docker gibt ihnen daher einen zufälligen Namen, der innerhalb eines bestimmten Docker-Hosts garantiert eindeutig ist. Neben dem Namen verhalten sich benannte und anonyme Volumes gleich.
Ergebnisse
version: "3"
services:
influxdb:
image: influxdb:latest
container_name: influxdb
ports:
- "8086:8086"
#env_file:
# - 'env.influxdb'
networks:
- backend
volumes:
- influxdb-data:/var/lib/influxdb
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
#env_file:
# - 'env.grafana'
# - 'secrets.grafana'
networks:
- backend
volumes:
- grafana-data:/var/lib/grafana
networks:
backend:
volumes:
influxdb-data:
grafana-data:
Ergebnisse in:
DRIVER VOLUME NAME
local 604a07040367512b09c618c6dcc71a7f55390c9c23de6ab08be7466414ed62da
local 7f4b630073b31b6e772d3edef6da81b48643525edfc34281ea13fbd6b86ec270
local devopsstackexchange_grafana-data
local devopsstackexchange_influxdb-data
und jedes Mal, wenn docker-compose downund in der Folge ausgeführt upwird, verdoppelt sich die Anzahl anonymer Volumes.
Was passiert, wenn Nginx anstelle von Influxdb und Grafana gezogen wird?
DRIVER VOLUME NAME
local devopsstackexchange_grafana-data
local devopsstackexchange_influxdb-data
und danach docker-compose down && docker-compose up -d?
DRIVER VOLUME NAME
local devopsstackexchange_grafana-data
local devopsstackexchange_influxdb-data
Es sieht so aus, als hätten bestimmte Bilder die zusätzlichen anonymen Volumes erstellt. Ersetzen wir influxdb durch nginx und verwenden grafana.
DRIVER VOLUME NAME
local 15b80416ab06abb629d9f634a0feff08f7c560f31d614b9b430855c16cdb75c7
local 205a6f19cbf992c95b2e3be9f2fb1ca9ecec35fce550d0b7a4b9f32b0ef163b1
local 474108f5b7b14fba92a3e5a980f3bf851388b2ee25d7417df5c42d9f176e084b
local 5830a31a470ec8a42ddae7a37bb50487f3f36360318b2f9f5301b338507782b4
local 9f00868a2fec0cfc0d34dc12d0879d39487a13128863722f400ad4c47df2d340
local devopsstackexchange_grafana-data
local devopsstackexchange_influxdb-data
local f47b1b7bbec8e50b32a7c39704c7c218165b284298d852313fa24bc7cbe6acc5
Jedes Mal, wenn Docker Compose erneut ausgeführt wurde, wurden vom grafana/grafanaDocker-Image drei anonyme Volumes erstellt . Ersetzen wir influxdb durch nginx und setzen die grafana auf nginx zurück:
DRIVER VOLUME NAME
local devopsstackexchange_grafana-data
local devopsstackexchange_influxdb-data
und es bleiben zwei, wenn neu gestartet.
Es sieht so aus, als würde Grafana das Problem verursachen.
Warum werden bei jedem Neustart von grafana / grafana drei neue anonyme Volumes erstellt?
Die Docking-Datei grafana / grafana gibt an, dass drei anonyme Volumes erstellt werden:
VOLUME ["/var/lib/grafana", "/var/log/grafana", "/etc/grafana"]
https://docs.docker.com/engine/reference/builder/#volume
FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
VOLUME /myvol
Diese Docker-Datei führt zu einem Image, das dazu führt, dass Docker ausgeführt wird, um einen neuen Mount-Punkt bei / myvol zu erstellen und die Begrüßungsdatei auf das neu erstellte Volume zu kopieren.
docker volume inspect <volume name, e.g. 34cfafd4603dbc7e71a83e2520f978c8307b084143b3192de65a1995dc1d2f86> gab grafana-Daten zurück, als der zurückgegebene Pfad von zwei von drei anonymen Volumes überprüft wurde:
sudo ls /var/lib/docker/volumes/a0ecd00df8fc68ef36e777c7bf9ec5a496ee30e313b86889487501a53fa2e28e/_data
grafana.ini ldap.toml
und
sudo ls /var/lib/docker/volumes/34cfafd4603dbc7e71a83e2520f978c8307b084143b3192de65a1995dc1d2f86/_data
grafana.db plugins