Do you need to access your local machine’s network from inside your broker running on Docker?
For instance, I wanted to create a REST endpoint so I could send some data from an RDP in a broker running in Docker. The problem is that you can’t use localhost
or 127.0.0.1
For example, if I start my REST endpoint at port 9010 on my local machine, I can do
telnet localhost 9010
And everything works fine.
However, from a Docker container (in this case an Ubunutu image), life is not so good:
container# telnet localhost 9010
Trying 127.0.0.1...
Trying ::1...
telnet: Unable to connect to remote host: Cannot assign requested address
That’s because localhost
is local to the container.
So I need to identifiy the local machine’s network to the container. It’s pretty simple, instead of using localhost short cuts, just specify your machine’s IP address:
host# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.28.138.196 netmask 255.255.240.0 broadcast 172.28.143.255
...
container# telnet 172.28.138.196 9010
Trying 172.28.138.196...
Connected to 172.28.138.196.
So now I can just set my RDP Rest Consumer to send to 172.28.138.196.