(Think) what you describe is a reverse proxy, as in a single entrypoint that routes traffic to the target backends based on ip:port, domain name and port or url path.
Though, the link is about a forward proxy, which is typicaly found in enterprise environments, where direct internet access is prohibited and traffic to the internet needs to send thru a foward proxy (typical a http proxy) instead.
I am quite sure you will find many post regarding reverse proxies. You can either use something like Traefik (highly recommended!) or jwilder’s nginx-proxy where routing is configured using labels on target containers or use nginx/apache to manualy maintain your reverse proxy rules. Make sure the domain names you want to use are known by your dns server. Without working name resolution it is worth nothing if a reverse proxy is listening on a domain name, but the client is not able to resolve it…