I have a localhost:8000 open on the host machine. Specifically:
$ php -S localhost:8000
PHP 7.1.19 Development Server started at Tue Jul 16 09:49:08 2019
Listening on I can just do curl -i on host to get the response, and I can also access it through host browser, no problem at all.
However, when I try to access host on docker container on my Mac, the connection refused:
$ curl -i
curl: (7) Failed to connect to host.docker.internal port 8000: Connection refused
$ telnet host.docker.internal 8000
Trying 192.168.65.2...
telnet: Unable to connect to remote host: Connection refusedThe docker container can resolve the DNS host.docker.internal as can be seen from the telnet command and also I can ping it, but the connection is just refused.
$ ping host.docker.internal
PING host.docker.internal (192.168.65.2) 56(84) bytes of data.
64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=1 ttl=37 time=0.186 ms
64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=2 ttl=37 time=0.463 ms
64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=3 ttl=37 time=0.420 ms
64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=4 ttl=37 time=0.428 ms
64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=5 ttl=37 time=0.722 msUPDATE
I found this GitHub issue comment, don't know if this helps.
11 Answer
I was able to get this to work. I am not sure if you are still facing this issue and my resolution will work for you. But, it is never a harm to try it out.
I noticed the containers that did not have a port to map/bind to the host has this issue of recognizing host.docker.internal to the host's localhost. Hence I used a dummy port for the container that has an issue connecting and it started to work.
Hope this helps.