[英]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"]
我都試過:
請參閱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.