I have nextcloud running just fine (with Apache) on a non-443 port. What issue are you seeing exactly? Once your webserver is listening on your port of choice, Nextcloud will show an “untrusted domain” warning if the domain/port have not been set in config.php properly. After that is done, it works perfectly for me.
I’d hope for the exact same performance with Docker (or KVM) as on a baremetal host, unless you’re doing userspace networking for ultra-low latency Nextcloud :D (and even that I suppose you could PCI-passthrough the network card?)