2017-04-25 107 views
0

我有一個運行Web服務器的Docker鏡像,我想從本地OSX訪問它,但我遇到了問題。無法在OSX上使用Docker公開Web服務器

我開始容器: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)
  • MacOS的塞拉利昂:10.12.4
  • 防火牆被關閉出於測試目的

我試過在Ubuntu相同的過程16.04,也沒有運氣。

+0

你是否檢查過你的防火牆沒有阻塞它? –

+1

你能分享你的服務器的代碼,所以我可以在本地測試它嗎? – Niko

+0

你的網絡服務器只聽'localhost:8000'嗎?它應該聽'0.0.0.0:8000' – shizhz

回答

2

更新版本的docker在OSX上使用vpnkit來管理端口轉發到容器......如果要公開容器端口,應該允許vpnkit通過防火牆。

另外,在您的Go代碼中,請確保將代碼綁定到0.0.0.0而不是127.0.0.1

+0

仍然無法正常工作;我關閉了防火牆並重新啓動了Docker容器 – Mike

+1

這意味着您的代碼可能正在監聽本地主機接口而不是您的容器的公共接口...您的代碼是否綁定到「127.0.0.1」? –

+0

將綁定更改爲0.0.0.0相當於127.0.0.1! – Mike

相關問題