尝试从Docker以主机为本地主机运行python gRPC服务器时,出现错误“ 不支持地址族”
这是针对在Ubuntu 18.04主机上的Docker内部以Python 3.6编写的gRPC服务器。尝试用 0.0.0.0 替换“ 本地主机”,现在出现新错误“ 拒绝连接”
status_channel = grpc.insecure_channel('localhost:6667'))
应该建立不安全的gRPC连接,并且应该在客户端和服务器之间传输数据。而不是出现连接错误。
答案 0 :(得分:1)
另一种解决方法是在本地使用 --net=host 运行 docker 容器。
$ docker run -d --net=host <image_name>
这是因为 localhost 可以解析为 docker port-forwarding 不友好的 IPv6。如果绑定 IPv6 地址失败,也会导致 IPv4 绑定失败。
或者您也可以通过以下方式为 docker 启用 IPv6:https://docs.docker.com/config/daemon/ipv6/
答案 1 :(得分: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
这就像一个魅力。连接已建立,数据已传输。