我有以下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,内部版本6d1ac21
最佳答案
Docker容器无法在主机上使用其名称进行解析。它们只能在其他容器中解析。名称取决于您是否尝试从同一撰写/网络中的另一服务或另一服务中的另一服务进行连接。
如果需要从主机上发现容器,则需要使用dnsmasq之类的工具。有关如何进行此设置的更多详细信息,请参见下面的答案
Access to container by his hostname from host-mascine
关于docker - docker-compose网络-主机名无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250357/