無法連接到本地Docker 容器中運行的Go GRPC 伺服器
針對本地運行的GRPC 服務運行GRPC 用戶端時,重要的是要考慮伺服器的偵聽端點。預設情況下,當指定主機名稱或 IP 位址(在本例中為 localhost)時,伺服器將僅偵聽該特定位址。
在 Docker 容器的上下文中,偵聽 localhost (127.0.0.1) 是這是有問題的,因為它無法在容器外部存取。雖然 Docker 可能會暴露主機上的端口,但伺服器只會偵聽容器內的 127.0.0.1。
要解決此問題,應將偵聽端點變更為 *:51672,指示伺服器偵聽容器內所有可用的 IP 位址。這允許容器在暴露的連接埠上接收從主機轉送的流量。
要驗證問題,可以使用以下命令檢查 iptables 規則:
iptables -n -L iptables -t nat -n -L
這些規則由 Docker 建立來實現連接埠轉送。透過將伺服器設定為偵聽所有可用的 IP 位址,用戶端可以成功連線到 Docker 容器內執行的 GRPC 服務。
以上是為什麼我的 GRPC 用戶端無法連線到我的 Docker 化伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!