Лучше использовать reverse proxy, типа nginx или готовый https://github.com/nginx-proxy/nginx-proxy
для таких случаев. У Docker своя внутренняя подсеть и пусть контейнеры остаются в ней и на своих портах.
Используйте nginx как reverse proxy либо на самом хосте VDS, либо например через https://github.com/nginx-proxy/nginx-proxy
Тогда порты будут стандартные для всех сайтов - 80 и 433
прописать в /etc/resolv.conf адреса провайдера, хостера или публичные, например от Гугла. Проверить в Ubuntu командой nslookup www.google.com - что DNS резольвинг заработал.