我试图在docker中部署gRPC(go)服务器并在本地端口中公开端口,但是端口绑定不起作用

时间:2019-05-05 09:06:56

标签: docker go docker-compose grpc grpc-go

我试图在docker中部署gRPC服务器和mongodb。之后,我尝试将docker端口绑定到本地端口。 mongodb端口绑定工作正常。但是,gRPC服务器端口未绑定我的本地端口

ports:
  - "50051:50051"

我在docker-compose.yml中尝试过的

docker-compose.yml

services:
  auth_server:
    container_name: auth_service
    build: .
    command: go run server.go
    volumes:
      - .:/go/src/auth_server
    working_dir: /go/src/auth_server
    ports:
      - "50051:50051"
    environment:
      PORT: 50051

在客户端gRPC文件中,我使用了主机和端口,例如 0.0.0.0:50051

conn, err := grpc.Dial("0.0.0.0:50051", grpc.WithInsecure())

但是它不起作用。我找不到任何错误,所以我想我做错了什么。

2 个答案:

答案 0 :(得分:1)

从主机上的客户端连接时,应使用127.0.0.1:50051;如果从docker-compose网络连接,则应使用auth_server:50051

答案 1 :(得分:0)

如果你在 Windows 上运行它,我会用命令检查“保留的端口范围”

 netsh interface ipv4 show excludedportrange protocol=tcp

另见this thread on github

如果是 linux,请检查主机上是否没有任何内容绑定到该端口。