为了账号安全,请及时绑定邮箱和手机立即绑定

Docker 和 gRPC - 连接关闭

Docker 和 gRPC - 连接关闭

Go
斯蒂芬大帝 2022-05-23 16:55:17
开门见山。我一直在尝试在 docker 容器中移动一些微服务。为简单起见,假设您在同一台机器上有两个微服务,分别称为 A 和 B。这两个微服务都使用 gRPC。微服务 A 想要在 B 中调用一个过程。B 在一个 docker 容器中,它在 A 运行的同一台机器上,但不在容器中。当 A 调用一个过程时,我得到rpcerror: code = Unavailable desc = connection closed.我已经启动了 B: docker run -it -p 51001:51001 B这是 DockerfileFROM golang as builderWORKDIR /go/src/bRUN \    git clone bla bla bla bla /go/src/b \    && GOOS=linux GOARCH=amd64 \    go get && CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' -o main .FROM alpine:latestRUN apk --no-cache add ca-certificates && apk add --update bashWORKDIR /root/COPY --from=builder /go/src/b/main .COPY --from=builder /go/src/b/.env .EXPOSE 51001CMD ["./main"]我检查了端口,容器内部和主机上的一切看起来都很好。我的主机附带 MacOS。在没有容器的情况下启动时,一切正常。所以它与 docker、grpc 与 docker、一些网络的东西有关,或者它甚至可能是 42 ......不知道。有人吗?如果您需要其他信息,请询问。
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

遇到了类似的问题。不确定您如何设置 gRPC 服务器,但将侦听器的地址从更改localhost:51001:51001修复。



查看完整回答
反对 回复 2022-05-23
?
MYYA

TA贡献1868条经验 获得超4个赞

我也遇到了这个问题,对我来说我可以使用它来修复它

docker run -it --network host [...]

这当然不是一个实际的修复,只是 docker 网络控制器正在抛出连接。

也许解决方法是更新您的 docker 安装。


查看完整回答
反对 回复 2022-05-23
  • 2 回答
  • 0 关注
  • 384 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号