我正在嘗試在 docker 容器中運行 Go 應用程序二進制文件。該應用程序有一些 gRPC 請求正在監聽和服務器:http.ListenAndServe("localhost:8081", nil)在我的 docker-compose.yaml 中。我有一個映射到 8081 的應用服務: golangAPP: build: context: . dockerfile: ./docker/golangAPP/Dockerfile depends_on: - setup ports: - 8081:8081在docker-compose up我看到正在提供應用程序的詳細信息之后。但我仍然無法達到它。curl -X OPTIONS http://localhost:8081返回curl: (56) Recv failure: Connection reset by peer如果我在沒有 docker 的情況下在本地運行二進制文件,那么我可以向應用程序發送請求。有什么建議嗎?我做了一些谷歌搜索和一些防火墻問題。但我不確定如何進行。
1 回答

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
如果你這樣做:
http.ListenAndServe("localhost:8081", nil)
這將監聽來自環回接口的連接。在容器中運行時,這將只接受來自該容器內的連接(或者如果您在 k8s pod 中運行它,則在同一個 pod 中)。所以:
http.ListenAndServe(":8081", nil)
這將接受環回和外部連接(容器外部)。
- 1 回答
- 0 關注
- 295 瀏覽
添加回答
舉報
0/150
提交
取消