I have a docker image of Grafana 8.0.5. I created a volume using docker volume create grafana-storage
I can stop the volume, and bring it back up with no data loss.
However, if I update my docker-compose.yml to point to the latest version, 8.0.6, and re-run docker-compose up -d
the volume goes back to a default install, losing any of my previously created dashboards, accounts, data sources, etc.
As far as I understand, I shouldn't lose any data, since it should all be in the volume. How do you update images without resetting the volume
docker-compose.yml:
version: "3.3"
volumes:
grafana-storage:
external: true
services:
grafana:
image: "grafana/grafana:8.0.6"
container_name: "grafana"
volumes:
- "grafana-storage:/usr/src/grafana"
Docker Version:
Docker version 20.10.7, build f0df350
Docker-Compose Version:
docker-compose version 1.29.2, build 5becea4c
docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3fb6da4a8de9 grafana/grafana:8.0.6 "/run.sh" 17 minutes ago Up 17 minutes 3000/tcp grafana
046892ab0a7b traefik:v2.0 "/entrypoint.sh --pr…" 46 minutes ago Up 23 minutes 80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp traefik
docker volume ls:
DRIVER VOLUME NAME
local grafana-storage
The data is not stored in /usr/src/grafana
but in /var/lib/grafana
. In consequence, your volume-definition in docker-compose.yml
is wrong and everytime the container is recreated, the data is lost.
Change the path to /var/lib/grafana
and it should work:
services:
grafana:
[...]
volumes:
- "grafana-storage:/var/lib/grafana"