Outbound connections from Docker with VirtualBox not working?

Using Docker and VirtualBox and having trouble making outbound connections? You may have errors similar to:

  • curl: (7) Failed connect to 10.0.2.224:8000; No route to host
  • Error: Redis connection to redis:6379 failed - connect EHOSTUNREACH

Here’s what I did to fix it:

  • I ssh’d into the Docker machine:

$ docker-machine ssh dev ```

  • Checked eth0’s subnet:

$ ifconfig eth0 eth0 Link encap:Ethernet HWaddr 08:00:27:C8:C7:50 inet addr:10.254.0.15 Bcast:10.254.0.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec8:c750/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:230796 errors:0 dropped:0 overruns:0 frame:0 TX packets:62400 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:238029328 (227.0 MiB) TX bytes:4768029 (4.5 MiB)


- Modified the NAT's subnet to match:

 ```
$ docker-machine stop dev
$ VBoxManage modifyvm dev --natnet1 "10.254.0.0/24"
$ docker-machine restart dev
 ```


And just like that, it works:

$ docker@dev:~$ curl http://10.0.2.224:8000 HTTP/1.1 200 OK