1

尝试从 Docker 以主机作为 localhost 运行 Python gRPC 服务器时,出现错误“不支持地址系列

这是针对在 Ubuntu 18.04 主机上的 Docker 内用 Python 3.6 编写的 gRPC 服务器。尝试用0.0.0.0替换“ localhost ”,现在得到一个新错误“ Connection Refused

status_channel = grpc.insecure_channel('localhost:6667'))

应该建立不安全的 gRPC 连接,并且应该在客户端和服务器之间传输数据。而不是出现连接错误。

4

2 回答 2

1

另一种解决方法可能是在本地使用--net=host运行 docker 容器。

$ docker run -d --net=host <image_name>

这是因为 localhost 可以解析到 docker 端口转发不友好的 IPv6。如果绑定 IPv6 地址失败,也会导致 IPv4 绑定失败。

或者您也可以通过以下方式为 docker 启用 IPv6:https ://docs.docker.com/config/daemon/ipv6/

于 2021-02-08T16:24:05.180 回答
0

在尝试从 docker 运行 grpc 服务器时,我的 grpc 不安全通道包含以下内容:

server.add_insecure_port(f'{os.environ.get("HOST")}:{os.environ.get("PORT")}')

然后我从 .env for python 覆盖这个变量,其中:

HOST=0.0.0.0
PORT=50001

这就像一个魅力。连接已建立,数据已传输。

于 2021-02-08T16:11:13.190 回答