docker - docker-compose网络-主机名无法解析

标签 docker docker-compose

我有以下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/

相关文章:

apache-spark - 通过Docker Compose将Spark Master连接到Spark Slave

user-interface - Spark Docker - 无法访问资源管理器的 Web UI - Mac PC

docker - 如何从另一个 docker 容器使用在 docker 容器上运行的模拟器?

带有副本集的 Mongodb 在 docker compose 中

opencv - 如何永久保存docker容器中的数据和软件?

Docker-compose - 设置不是文字的环境变量

python - 在tensorflow docker-compose中没有贴切?

python - 无法使用 mysqlclient 从 docker 连接

wordpress - 如何使用Nginx前端通过两个Docker容器运行的两个wordpress网站。

linux - "no space left on device"- 在 ubuntu 机器上运行 docker-compose 时。无助于清理和重启