使用docker-compose

时间:2018-12-20 22:55:48

标签: docker elasticsearch docker-compose kibana

我有一个定义了elasticsearch和kibana的docker-compose.yaml文件。

当我运行docker-compose时,我将能够使用URL http://localhost:8181访问kibana,并且一切都以exepcted运行。但是,我的问题是我不想在kibana中使用elasticsearch端口9200,而是要使用其他端口(例如9201)

在使用不同于9200的端口时,如何在kibana中使elasticsearch连接?

我尝试在下面添加以下内容,但出现错误 “无法通过http://elasticsearch:9201连接到Elasticsearch。”

elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3
    environment:
        discovery.type: single-node
    ports:
        -"9201:9200"

kibana:
    depends_on:
        - elasticsearch
    image: docker.elastic.co/kibana/kibana-oss:6.2.3
    environment:
        SERVER_NAME: "s_name"
        ELASTICSEARCH_URL: http://elasticsearch:9201
    ports:
        - "8181:5601"

以下在9200端口上正常工作

elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3
    environment:
      discovery.type: single-node

kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana-oss:6.2.3
    environment:
      SERVER_NAME: "s_name"
      ELASTICSEARCH_URL: http://elasticsearch:9200
    ports:
      - "8181:5601"

1 个答案:

答案 0 :(得分:0)

ELASTICSEARCH_URL: http://elasticsearch:9201

将其设置为ELASTICSEARCH_URL: http://elasticsearch:9200

"9201:9200"从容器端口映射到主机端口。也就是说,它将在主机的网络接口上公开9201,并将其转发到容器中的端口9200。

您的Kibana服务试图连接到elasticsearch的9201,这是一个位于不同网络上且具有不同IP地址(不是127.0.0.1)的不同容器,并且网络上,容器正在端口9200上运行进程。

编辑:再次阅读,您可以配置端口Configure port number of ElasticSearch。尝试在环境中设置http.port(基于https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-configuration-methods):

elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3 environment: discovery.type: single-node http.port: 9201-9301 ports: -"9201:9201"