Docker 連接埠暴露失敗:解決「接收失敗:連線被對等方重設」
嘗試在Docker 容器中執行Go 應用程式時,在存取暴露的連接埠時遇到錯誤「Recv failure: Connection Reset by Peer」。儘管在 docker-compose.yaml 檔案中正確配置了連接埠映射,但應用程式仍然無法從外部來源存取。
此問題的根本原因在於 Go 應用程式偵聽傳入請求的方式。預設情況下,Go 應用程式在使用語法 http.ListenAndServe("localhost:8081", nil) 時會綁定到本地環回介面("localhost")。
解決方案:
在 Docker 容器內,Go 應用程式應該偵聽所有可用的接口,而不是僅限於環回接口。為此,請在 Go 應用程式中修改以下程式碼:
透過刪除「localhost」前綴,應用程式現在接受來自環回介面和外部來源的連線。此修改可確保在 docker-compose.yaml 檔案中暴露連接埠後可以存取應用程式。
以上是為什麼我無法存取公開的 Docker 連接埠? - 對 Go 應用程式中的「接收失敗:連線由對等方重設」進行故障排除的詳細內容。更多資訊請關注PHP中文網其他相關文章!