簡體   English   中英

Docker 端口不暴露 Golang

[英]Docker Port Not Exposing Golang

我正在 docker 中構建一個 golang WebService。 構建看起來不錯,但我無法公開端口以供外部(容器外部)訪問。 當我從命令行(在容器內)卷曲時,應用程序似乎工作正常。

我看到不少類似問題的帖子,但不幸的是,很多帖子都沒有解決或似乎不適用。

FROM golang:alpine
RUN mkdir /go/src/webservice_refArch
ADD . /go/src/webservice_refArch
WORKDIR /go/src/webservice_refArch
RUN apk add curl
RUN cd /go/src/webservice_refArch/ && go get ./...
RUN cd /go/src/webservice_refArch/cmd/reference-w-s-server && go build -o ../../server
EXPOSE 7878
ENTRYPOINT ["./server", "--port=7878"]

我都試過:

  • :7878
  • 本地主機:7878

請參閱https://docs.docker.com/engine/reference/run/#expose-incoming-ports ,僅在 dockerfile 中公開端口是不夠的。

您可以在啟動容器時添加-p 7878:7878 ,或者使用-P讓 docker 為您設置自動主機端口映射。

如果您不想這樣做,您也可以在啟動容器時添加--net=host ,然后容器將使用主機的網絡,如果也適合您。

如果您嘗試從本地計算機訪問 docker 容器內的端口,則需要將其映射到本地計算機上所需的端口docker run -p 7878:7878 IMAGE然后您應該能夠在您的主機上訪問它

我面臨着同樣的問題。 然后我所做的是將 ListernHost 從 localhost 更改為 0.0.0.0 並且它起作用了。

為了調試這個在容器內嘗試過的 curl,它工作正常,但在容器外,curl 的響應是空白的。 端口已映射,但內容未在容器外提供。 將“localhost”更改為 0.0.0.0 后,它將起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM