Would it be possible to use a DNS server and reverse proxy together?
Sure, reverse proxy is a web server whos job is to be in charge of ports 80 and 443 and decide to what other webservers send traffic based on request url
Can I have Internal and external DNS?
Probably, who knows what you really means. Split dns maybe?
Should I switch to running a bare-metal hypervisor?
If you need it. Seems your needs are met with just docker.
What should I use for a DNS Server?
dnsmasq works and I used it for a time, then I moved to having opnsense as my firewall and use its unbound service.