boot2docker无法访问外界

boot2docker can't access the outside world

在 OSX 上,通过 boot2docker,我在 rails 应用 运行ning 上有一个 ruby 在 docker 容器中。

不过好像不能访问第三方API的。

下面的代码可以在 docker 容器之外运行,但不能在容器内部运行:

response = HTTParty.get('https://api.stackexchange.com/2.2/questions?site=Whosebug')

当来自 docker 容器内的 运行 请求超时时:

SocketError: getaddrinfo: Name or service not known

此时我认为问题可能出在 boot2docker 设置上,就像:

boot2docker ssh
ping stackexchange.com

然后超时。

我正在使用 OSX 10.10.3、boot2docker 1.50 和 docker-compose

经过更多挖掘,我在 Github 上发现了一个问题,通过 brew 安装 boot2docker 是问题所在。

我通过 brew 卸载,重新启动并直接从 http://boot2docker.io/ 安装。这似乎解决了问题。