一尘不染

在容器中运行本地kibana

docker

我想用我的本地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更换)


阅读 378

收藏
2020-06-17

共1个答案

一尘不染

如果您想在docker本地将kibana与elasticsearch一起使用,它们必须彼此通信。为此,根据doc,您需要链接容器。您可以使用以下命令为elasticsearch容器命名--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的旧功能。重现同一件事的惯用方式是首先创建一个用户定义的桥:

docker network create elasticsearch-kibana

然后在其中创建容器:

版本6

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

如前所述,环境变量已针对版本7进行了更改。现在为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解析,这意味着您可以通过容器名称相互访问。

2020-06-17