Use:
docker network create -d bridge my_network
docker run --name=mycontainer -it --network my_network -p 8080:80 ubuntu bash
Docker Desktop will make port 8080 accessible on the host on localhost and lan ip.
No. If this is what you need, then you need Linux + docker-ce, and need to use a macvlan network. If you run Linux and docker-ce in a vm on your Windows host, this may or may not work, depending on how the virtualization solution work. I won’t be able to give any recommendations or answer questions in that direction.