docker – 组成networking – 主机名不解决

我有以下docker组成文件。 我正尝试从主机访问在容器中运行的服务。

但主机名永远不会解决。

version: '2' networks: mynet: driver: bridge services: grpcserver: image: test/image volumes: - ./:/var/local/git ports: - 50051:50051 stdin_open: true tty: true hostname: grpcserver networks: - mynet entrypoint: bash ../var/local/git/service/start.sh 

当我exec到容器时,我可以使用主机名成功地将telnet grpcserver 50051到正在运行的服务。 但是从主持人,我不能。

docker-compose版本1.16.1,build 6d1ac21

Docker容器没有在主机上使用他们的名字parsing。 他们只能在其他容器内解决。 该名称取决于您是否尝试从同一个撰写/networking中的另一个服务连接或另一个服务。

如果你需要你的容器可以从主机发现,你需要使用像dnsmasq这样的工具。 有关如何进行此类设置的更多详细信息,请参阅下面的答案

通过host-mascine的主机名访问容器