首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker主机名不能在自定义网络中解析

Docker主机名不能在自定义网络中解析
EN

Stack Overflow用户
提问于 2018-07-24 21:25:47
回答 1查看 97关注 0票数 0

我的docker-composer.yml文件中有以下配置。

代码语言:javascript
复制
version: '3.3'
services:
  service-1:
    container_name: 'service-1'
    build: './service-1'
    depends_on:
      - 'mongo'
      - 'consul'
    networks:
      backend:
        aliases:
          - service-1
  service-2:
    build: './service-2'
    ports:
      - '8825:8825'
      - '8835:8835'
    networks:
      frontend:
      backend:
        aliases:
          - service-2
    depends_on:
      - 'mongo'
      - 'consul'
  consul:
    image: 'consul:latest'
    networks:
      backend:
        aliases:
          - consul
  mongo:
    image: 'mongo:latest'
    networks:
      backend:
        aliases:
          - mongo

networks:
  frontend:
  backend:
    internal: true

当我的容器启动时,它们不能使用主机名相互通信。大多数容器使用mongo db容器,但它们甚至无法到达它,我得到了以下错误。

代码语言:javascript
复制
Error connecting to mongo : no reachable servers

请帮我解决这个问题,我卡住了。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-07-24 22:16:18

您在compose文件中有许多不需要的设置,下面是一个同样有效的精简版本:

代码语言:javascript
复制
version: '3.3'
services:
  service-1:
    build: './service-1'
    networks:
      - backend
  service-2:
    build: './service-2'
    ports:
      - '8825:8825'
      - '8835:8835'
    networks:
      - frontend
      - backend
  consul:
    image: 'consul:latest'
    networks:
      - backend
  mongo:
    image: 'mongo:latest'
    networks:
      - backend

networks:
  frontend:
  backend:
    internal: true

您可以自动获取每个容器的服务名称的别名,无需重复。如果您为服务指定了容器名称,则还会失去扩展服务的能力。我还建议将构建步骤移出compose文件,并使用本地构建的应用程序的镜像名称。

现在,对于可能出现的问题,您的组合文件中有一个depends_on。充其量,这不会实现您想要的结果。它检查其他容器是否已创建并启动,但不检查其中的应用程序是否已准备好为流量提供服务,并且数据库可能需要时间才能变为可用。在最坏的情况下,你会得到一个错误,它是不支持的,如果你试图移动到群组模式。

与其依赖docker,不如更新你的应用程序入口点,检查外部依赖项,并等待一两分钟,让它们变得可用,然后再失败。一个非常简单的示例工具是wait-for-it,它被编写为bash shell脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51499833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档