我想用我的本地elasticsearch(容器)在运行使用kibana控制台ElasticSearch文档,我看到
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.2
这使我可以快速地运行社区版。
查看kibana文档,我只能看到
docker pull docker.elastic.co/kibana/kibana:6.2.2
用run替换pull会寻找x-pack(我认为这意味着不是社区),并且找不到ES
Unable to revive connection: http://elasticsearch:9200/
是否有一个可以轻松在容器中设置kibana本地化的衬板?我需要做的就是使用控制台(Sense更换)
如果您想在docker本地将kibana与elasticsearch一起使用,它们必须彼此通信。为此,根据doc,您需要链接容器。您可以使用以下命令为elasticsearch容器命名--name:
--name
docker run \ --name elasticsearch_container \ --publish 9200:9200 \ --publish 9300:9300 \ --env "discovery.type=single-node" \ docker.elastic.co/elasticsearch/elasticsearch:6.2.2
然后将此容器链接到kibana:
docker run \ --name kibana \ --publish 5601:5601 \ --link elasticsearch_container:elasticsearch_alias \ --env "ELASTICSEARCH_URL=http://elasticsearch_alias:9200" \ docker.elastic.co/kibana/kibana:6.2.2
端口5601在本地公开,可以从浏览器访问它。您可以在监视部分中检查elasticsearch的运行状况是否为绿色。
编辑(24/03/2020):
该选项--link 最终可能会被删除,现在是docker的旧功能。重现同一件事的惯用方式是首先创建一个用户定义的桥:
--link
docker network create elasticsearch-kibana
然后在其中创建容器:
docker run \ --name elasticsearch_container \ --network elasticsearch-kibana \ --publish 9200:9200 \ --publish 9300:9300 \ --env "discovery.type=single-node" \ docker.elastic.co/elasticsearch/elasticsearch:6.2.2 docker run \ --name kibana \ --publish 5601:5601 \ --network elasticsearch-kibana \ --env "ELASTICSEARCH_URL=http://elasticsearch_container:9200" \ docker.elastic.co/kibana/kibana:6.2.2
如前所述,环境变量已针对版本7进行了更改。现在为ELASTICSEARCH_HOSTS。
ELASTICSEARCH_HOSTS
docker run \ --name elasticsearch_container \ --network elasticsearch-kibana \ --publish 9200:9200 \ --publish 9300:9300 \ --env "discovery.type=single-node" \ docker.elastic.co/elasticsearch/elasticsearch:7.6.2 docker run \ --name kibana \ --publish 5601:5601 \ --network elasticsearch-kibana \ --env "ELASTICSEARCH_HOSTS=http://elasticsearch_container:9200" \ docker.elastic.co/kibana/kibana:7.6.2
用户定义的网桥可在容器之间提供自动DNS解析,这意味着您可以通过容器名称相互访问。