PiHole - DNS to Different ports

What you're looking for is a reverse proxy.

Nginx, traefik, caddy are all products that will help you with that. As you're running docker, look at traefik, I use that and it is quite nice.