我有以下docker-compose文件。我正在尝试从主机访问容器中运行的服务。
但主机名永远不会解决。
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
答案 0 :(得分:2)
未在主机上使用其名称解析Docker容器。它们只能在其他容器内解析。该名称取决于您是否尝试从同一个撰写/网络中的其他服务或不同的服务进行连接。
如果您需要从主机发现容器,则需要使用dnsmasq之类的工具。请参阅下面的答案,了解有关如何进行此类设置的更多详细信息