Or give everything an ipv6 address and just use DNS. Once you get accustomed to every VM and every container and every little experiment having a routeable IP address life gets easier.
Allocate a /64 to any machine that runs VMs or containers. Then I tend to just run radvd which will broadcast the prefix so that hosts can auto assign; for virtual hosts letting them auto assign based on mac address is usually fine, as the mac address is random or you assign explicitly (explicit is often easiest). Its fairly simple, just get ipv6 and start using it...
You would normally have to explicitly unfirewall any service; I run my ipv6 as inbound ssh only. Although crawling ipv6 is pretty hard compared to ipv4.