无法连接到本地 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中文网其他相关文章!