首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到码头映像中的gRPC服务器

无法连接到码头映像中的gRPC服务器
EN

Stack Overflow用户
提问于 2022-11-09 22:19:42
回答 1查看 44关注 0票数 0

我试图在Docker映像中包含基于gRPC的系统,最终目标是在基于kubernetes的部署中使用。当将服务器和客户端作为独立文件运行时,一切都正常工作。服务器的主要功能如下:

代码语言:javascript
复制
func main() {
//Start listening to tcp port, if cannot connect then throw an error

const (
port = ":50051"
)

listen, err := net.Listen("tcp", port)
if err != nil {
    log.Fatalf("failed to listen: %v", err)
}

//start the new server with grpc
s := grpc.NewServer()
VEIv1_0.RegisterVEIv1_0Server(s, &server{})

// Connnect to cloud service procviders
iotCore = connectToAWSIoT()
log.Println("Connected to AWS")
//mqttCli, topic = connectToGCPIoT()

//log.Println("Connected to GCP")

if err := s.Serve(listen); err != nil {
    log.Fatalf("failed to serve: %v", err)
}

}

在将其转换为图像后,我将使用docker run -d -rm --name windows-server -p 50051:50051 windows-server启动容器。根据日志,它正在按预期运行。当我尝试用不同的程序连接到容器时,使用

代码语言:javascript
复制
def main():
frameNum = 0
host = '172.17.0.4'
#According to docker container inspect, this is the IP of the Container
server_port = 50051

#instantiate a channel
channel = grpc.insecure_channel(
        '{}:{}'.format(host, server_port)
)

我收到以下错误

代码语言:javascript
复制
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
    status = StatusCode.UNAVAILABLE
    details = "failed to connect to all addresses; last error: UNKNOWN: ipv4:172.17.0.4:50051: tcp handshaker shutdown"
    debug_error_string = "UNKNOWN:failed to connect to all addresses; last error: UNKNOWN: ipv4:172.17.0.4:50051: tcp handshaker shutdown {grpc_status:14, created_time:"}"

我也尝试使用网关IP地址和DNS,也有错误。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-11-11 19:08:28

问题的根源在于服务器程序中有另一个错误,导致它以错误终止。当发生这种情况时,容器就会停止。客户端无法连接到服务器容器,因为服务器容器已经停止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74382040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档