I’d say that the most important takeover of this approach is to stop all the containers before the backup. Some applications (like databases) are extremely sensitive to data corruption. If you simply ´cp´ while they are running you may copy files of the same program at different point in time and get a corrupted backup. It is also important mentioning that a backup is good only if you verify that you can restore it. There are so many issues you can discover the first time you recover a backup, you want to be sure you discover them when you still have the original data.
I use filestash. I like it because it can connect with so many backends. In my setup it uses samba behind the scenes all the shares permissions are in a single configuration and I don’t have to worry about a different set of user credentials.