Use bind mounts instead of docker volumes. Then you just have normal directories to back up, the same as you would anything else.
In general, it's not a problem to back up files while the container is running. The exception to this is databases. To have reliable database backups, you need to stop the container (or quiesce/pause the database if it supports it) before backing up the raw database files (including SQLite).
This is your answer. It also has the benefit of allowing you to have a nice folder structure for your Docker setup, where you have a folder for each service holding the corresponding compose yaml and data folder(s)
I think volumes are useful when you don't want to deal with those files on the host. Mainly for development environments.
I wasn't able to understand volumes at first, and my team mate told me I had to use binders to run mysql. My project folder used to have a docker/mysql/data. Now I just point MySQL data to a volume so I don't loose data between restarts. And I don't have to deal with a mysql folder on my project with files I would never touch directly.
In my opinion, volumes are useful for development / testing environments.
I'm not sure either. The only thing I could come up with is that with volumes you don't have to worry about file ownership. That's usually taken care of for you with volumes from what I understand.