this problem is not a Docker-problem - it is a general problem:
how should the computer decide which service should receive a request sent to destination port :80? To your registry or to the k8s-UI?
You can either move the k8s-UI to a different port (if you need your registry on port :80) to have port :80 available for your registry.
Or you can use a loadbalancer (i.e. traefik) listening on port 80 and distributing the requests to the two backend-services/containers based on some rules (hostname, path, …).
I am using the latter approach to have a private registry and multiple NginX- + NodeJS-containers all accessible on port :80 and :443 and traefik decides where to send the requests to based on the path (in my case /v2/ to the registry, /barcodes/ to the corresponding NodeJS-container, … and the rest to a NginX-container).