I cannot connect to the published port on the swarm that uses overlay networking. I am using Docker for Windows with Windows containers. Both Windows and Docker are fully upgraded. After Windows’ 1709 update, I was hoping this issue would be resolved. I looked for information on the Internet to see if I was doing something wrong to no avail. I would like to know if anyone was successfully able to get it working.
On a side note, when I direct the port on my machine in
docker run -p 80:80 without using swarm, “localhost” does not work as well. I think this is a known limitation though. Both issues work when I switch to Linux containers.
I am running a dotnet kestrel web server service. I should be able to connect to my service using the published port.
Firefox gives me timeout, opera straight away returns connection refused. Cannot telnet into it either. Container IP’s assigned by the overlay network do not work either.
docker service ls gives me this:
Ports cannot be seen there, is it because publish mode is host? Ports information is available in the output of
docker service ps
And when I change the publish mode, I can scale it as well and the port information is seen in
docker service lsalbeit still cannot connect. the one below is without the
For more info, this is the output of the
docker network lsI wonder if i need some sort of bridge network like in Linux.
Steps to reproduce the behavior
- Initialise swarm
- Start the service, in my case: a simple web service built using aspnetcore:latest image. I tried different parameters, even used a docker-stack.yml:
docker service create --name=web --publish mode=host,published=80,target=80 web:aspnetcorelatestin the case above, I was unable to scale it on the same machine, which is normal i guess
docker service create --name=web --publish published=85,target=80 web:aspnetcorelatest
- Try to connect using one of
http://localhostor another IP. I tried connecting over VPN, from another machine as well as Internet IP.