So reverse proxies are often used in self-hosted and home lab environments to keep things simple.
Most self hosted apps end up with something like http://someip:1234 and http://someotherip:8372. With a reverse proxy you can setup and internal/private domain and have http(s)://app1.myinternaldomain.com or http(s);//myinternaldomain/app2 depending on which way you want to do it.
Reverse proxies are NOT required usually for self hosted apps on your internal network. they just help with organization, because remembering port numbers is stupid. Frankly you could also use one of those dashboard apps with links, or even just old school bookmarks. But some of us set up all these apps for the of it and to learn how all this stuff works, getting a reverse proxy into the mix is just one more step in that.
If you are using PvE for linux “VMs” those probably aren’t actually VMs but LXC containers. And if you are running docker in one of those, you’ve got containers in your containers.
Welcome to the club.