我有一个定义了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"
答案 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"