无法在OSX上使用Docker公开Web服务器

我有一个运行Web服务器的docker图像,我想从我的本地OSX访问它,但我有问题。

我启动容器: docker run -p 8000:8000 <container-name>

我可以看到日志消息告诉我本地服务器正在监听localhost:8000

我能够从运行中获得成功的响应:

docker exec <IMAGE-ID> curl "http://localhost:8000/"

我在本地OSX上试过的地址是:

  • http://localhost:8000/
  • http://<DOCKER-IP-172.17.0.2:8000/

这些都没有工作。 有什么build议么?

  • 容器是从golang:1.8
  • Docker版本: Version 17.03.1-ce-mac5 (16048)
  • MacOS Sierra: 10.12.4
  • 出于testing目的,防火墙已closures

我已经在Ubuntu 16.04上尝试了相同的过程,也没有运气。

较新版本的vpnkit在OSX上使用vpnkit来pipe理端口转发到容器…如果你想暴露容器端口,你应该允许vpnkit通过你的防火墙。

另外,在你的Go代码中,确保绑定到你的web服务器代码的0.0.0.0而不是127.0.0.1