地址系列不受支持的gRPC Docker

时间:2019-06-03 07:24:25

标签: docker docker-compose python-3.6 grpc-python

尝试从Docker以主机为本地主机运行python gRPC服务器时,出现错误“ 不支持地址族

这是针对在Ubuntu 18.04主机上的Docker内部以Python 3.6编写的gRPC服务器。尝试用 0.0.0.0 替换“ 本地主机”,现在出现新错误“ 拒绝连接

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

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

2 个答案:

答案 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

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