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

时间:2017-04-25 00:32:43

标签: macos docker go

我有一个运行网络服务器的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/

这些都不奏效。有什么建议吗?

  • 容器是从golang:1.8
  • 构建的
  • Docker版本:Version 17.03.1-ce-mac5 (16048)
  • MacOS Sierra:10.12.4
  • 防火墙已关闭以进行测试

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

1 个答案:

答案 0 :(得分:2)

较新版本的docker在OSX上使用vpnkit来管理转发到容器的端口...如果要公开容器端口,则应该允许vpnkit穿过防火墙。

此外,在您的Go代码中,请确保为您的网络服务器代码绑定到0.0.0.0而不是127.0.0.1