Untersuchungen haben ergeben, dass die anonymen Bände von influxdb
und 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 down
und in der Folge ausgeführt up
wird, 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/grafana
Docker-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