2016-11-17 41 views
1

Dockerfile碼頭工人:爲什麼端口轉發不適合巡迴演出?

FROM golang:latest 
EXPOSE 3999 
ENTRYPOINT ["go", "tool", "tour"] 

它開始Go Tourhttp://localhost:3999

我和搬運工run -d -p 127.0.0.1:3999:3999 "hubusername/docker-tour:v1"

運行它,但$ curl http://localhost:3999返回一個錯誤:
捲曲:(56)的Recv失敗:通過同級重置的連接

當然,在瀏覽器中的ip:3999也不起作用。

p.s. docker run -d -p 8081:80 nginx:alpine完美的作品

+2

這可能是因爲瀏覽只綁定到容器的本地IP(127.0.0.1),而不是它的外部IP,這是'-p'轉發的內容。 – afontaine

+0

@afontaine我可以將-p轉發到127.0.0.1嗎? –

+2

有可能允許'go tour'綁定到不同的IP地址。如果您將'0.0.0.0'傳遞給該選項,它通常綁定在所有IP地址上。是否有'-h'或'--host'選項? – afontaine

回答

2

好吧,我剛剛設置好的一個0.0.0.0主機中添加這一行去旅遊應用程序:

CMD ["-http", "0.0.0.0:3999", "-openbrowser=false"]

0

我得到這個使用默認golang容器的工作:

docker run --rm -p 3999:3999 golang go tool tour -http 0.0.0.0:3999 -openbrowser=false