Docker is a powerful tool to increase confidence in your backups.
- In a VM, the way you figure out which files to backup is to read the docs. If they're wrong or you misread them, the only way you'll find out is by doing a full restore test... which is often painful and complex in home setups.
- In docker, the filesystem outside volumes is destroyed between every container restart. If your volume setup is insufficient, you'll repeatedly lose state during your initial installation process between container restarts. You'll continually test your state management throughout the lifetime of the service during restarts. This leaves a much smaller window for backup mistakes.
The tradeoff with docker is that the networking is complex (well, everything is complex... but the networking is where it often hurts). But if you're able to deal with that one-time pain, it's superior almost all the time for home setups. I think the only things I run outside docker are ssh and netdata. SSH because it's stateless and works perfectly out of the box, and netdata because it wants permissions to everything... and is functionally stateless for me because I don't care if I drop my observability data.