I have a service bound to a localhost which I would like to be able to access from inside a Docker container. Relevant netstat output: (The service is on port 1143)
$ netstat -tulpn Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nam tcp 0 0 127.0.0.1:1143 0.0.0.0:* LISTEN 23317/protonmail-br tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1527/sshd Since Docker for linux currently has no clean way to obtain the IP of the host, I am using the qoomon/docker-host workaround image which exposes the host over a bridge network. I can access the host from my container using dockerhost:
bash-5.0# ping dockerhost PING dockerhost (172.22.0.2): 56 data bytes 64 bytes from 172.22.0.2: seq=0 ttl=64 time=0.187 ms 64 bytes from 172.22.0.2: seq=1 ttl=64 time=0.298 ms 64 bytes from 172.22.0.2: seq=2 ttl=64 time=0.126 ms I am using telnet to see if the container can connect to the port.
Services bound to 0.0.0.0 are accessible:
bash-5.0# telnet dockerhost 22 SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 However, the service bound only to localhost is not:
bash-5.0# telnet dockerhost 1025 telnet: can't connect to remote host (172.22.0.2): Connection refused How can I access this service from within the container, without exposing the service to the outside world?