我有一个运行网络服务器的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
Version 17.03.1-ce-mac5 (16048)
10.12.4
我在Ubuntu 16.04上尝试了相同的过程,但也没有运气。
答案 0 :(得分:2)
较新版本的docker在OSX上使用vpnkit
来管理转发到容器的端口...如果要公开容器端口,则应该允许vpnkit穿过防火墙。
此外,在您的Go代码中,请确保为您的网络服务器代码绑定到0.0.0.0
而不是127.0.0.1
。