跨链接的Docker容器发出http请求时出错

时间:2016-04-01 13:12:49

标签: angularjs http elasticsearch docker

我正在使用Angular.js 2,Elasticsearch和Docker构建Web应用程序。

我尝试使用链接的网址" http://search:9200/_cat/health"从我的Angular应用程序通过其REST API访问Elasticsearch,但我获得了{{1}错误。

奇怪的是,当我从网络应用程序的容器中做GET http://search:9200/_cat/health net::ERR_NAME_NOT_RESOLVED时,一切都很好,我得到了正确的答案。

以下是我各自的curl -XGET "http://search:9200/_cat/health"文件

docker-compose.yml

此处也是对弹性搜索服务的调用

version: '2'
services:
  search:
    image: elasticsearch:latest
    command: elasticsearch -Des.network.host=0.0.0.0
    ports:
      - "9200:9200"
      - "9300:9300"
  web:
    build: .
    command: npm start
    volumes:
      - .:/visfx
    ports:
      - "3000:3000"
    links:
      - search

1 个答案:

答案 0 :(得分:4)

如果javascript在客户端运行,则必须使用真实的DNS名称路由到docker主机,因为docker的名称只能使用docker的内部解析器来解析。