首頁 > 後端開發 > Golang > 主體

為什麼我無法存取公開的 Docker 連接埠? - 對 Go 應用程式中的「接收失敗:連線由對等方重設」進行故障排除

Patricia Arquette
發布: 2024-11-19 14:17:02
原創
1001 人瀏覽過

Why Can't I Access My Exposed Docker Port? - Troubleshooting

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板