You can create a docker volume to hold the data directory to persist it through multiple upgrades:
# If you've already created a volume, delete it if you want to start fresh
docker volume create grafana
# Create a new volume
docker volume create grafana
# Start one version
docker run --name grafana --rm -p 3001:3000 -v grafana:/var/lib/grafana grafana/grafana-oss:8.5.6
# Then shut it down and start a newer one
docker run --name grafana --rm -p 3001:3000 -v grafana:/var/lib/grafana grafana/grafana-oss:9.0.1
During development, just add this to your custom.ini
[server]
root_url = %(protocol)s://%(domain)s:3000/grafana/
serve_from_sub_path=true
That's it!