That's odd about the timezone. I actually found that my host was on UTC rather than London time, so that might help my situation. Haven't tested yet.
I'm struggling with persistence too. I found that /var/lib/mysql and /opt/cacti are where the configs are stored and if they can be passed as a volume then that would work. However, when I pass them through as volumes the container stops working. The following command, in my eyes, should start the container with persisted volumes:
docker run --name cacti -d -p 9123:80 -p 161:161 --restart always -e TZ=Europe/London \
-v /home/x/cacti/cacti:/opt/cacti -v /home/x/cacti/mysql:/var/lib/mysql quantumobject/docker-cacti
I must be missing something about the writing of the volumes as it just stops working with this change. I found https://hub.docker.com/r/idle/cacti-1-minute/ which should have persistence, but this also fails to start up. Note that the cacti config here is said to be /var/lib/cacti.
Let us know if you figure out persistence. I'll update you too if anything works for me.