运行 容器中的本地 kibana
Running a local kibana in a container
我正在尝试 运行 将 kibana 控制台与我的本地 elasticsearch(容器)一起使用
在 ElasticSearch documentation 我看到
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.2
这让我 运行 社区版在一个快速的衬里。
看着 kibana documentation 我只看到
docker pull docker.elastic.co/kibana/kibana:6.2.2
用 运行 替换 pull 它寻找 x-pack(我认为这意味着不是社区)并且找不到 ES
Unable to revive connection: http://elasticsearch:9200/
有没有一种可以轻松地在容器中本地设置 kibana 的工具?
我只需要使用控制台(Sense 替换)
如果你想在本地使用带有 elasticsearch 的 kibana docker,它们必须相互通信。为此,根据 doc,您需要 link 容器。
您可以使用 --name
:
为 elasticsearch 容器命名
docker run \
--name elasticsearch_container \
--publish 9200:9200 \
--publish 9300:9300 \
--env "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:6.2.2
然后link这个容器到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的health是绿色的
编辑(2020 年 3 月 24 日):
选项 --link
may eventually be removed 现在是 docker 的遗留功能。
重现相同事物的惯用方法是首先创建一个 user-defined 桥:
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
User-defined 网桥在容器之间提供自动 DNS 解析,这意味着您可以通过容器名称相互访问。
用起来也很方便docker-compose
例如,存储在主目录中的以下文件允许使用一条命令启动 Kibana:
docker-compose up -d
:
# docker-compose.yml
version: "2"
kibana:
image: "docker.elastic.co/kibana/kibana:6.2.2"
container_name: "kibana"
environment:
- "ELASTICSEARCH_URL=http://<elasticsearch-endpoint>:9200"
- "XPACK_GRAPH_ENABLED=false"
- "XPACK_ML_ENABLED=false"
- "XPACK_REPORTING_ENABLED=false"
- "XPACK_SECURITY_ENABLED=false"
- "XPACK_WATCHER_ENABLED=false"
ports:
- "5601:5601"
restart: "unless-stopped"
此外,Kibana 服务可能是您在开发环境中的项目的一部分(如果使用 docker-compose)。
我正在尝试 运行 将 kibana 控制台与我的本地 elasticsearch(容器)一起使用 在 ElasticSearch documentation 我看到
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.2.2
这让我 运行 社区版在一个快速的衬里。
看着 kibana documentation 我只看到
docker pull docker.elastic.co/kibana/kibana:6.2.2
用 运行 替换 pull 它寻找 x-pack(我认为这意味着不是社区)并且找不到 ES
Unable to revive connection: http://elasticsearch:9200/
有没有一种可以轻松地在容器中本地设置 kibana 的工具? 我只需要使用控制台(Sense 替换)
如果你想在本地使用带有 elasticsearch 的 kibana docker,它们必须相互通信。为此,根据 doc,您需要 link 容器。
您可以使用 --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
然后link这个容器到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的health是绿色的
编辑(2020 年 3 月 24 日):
选项 --link
may eventually be removed 现在是 docker 的遗留功能。
重现相同事物的惯用方法是首先创建一个 user-defined 桥:
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
User-defined 网桥在容器之间提供自动 DNS 解析,这意味着您可以通过容器名称相互访问。
用起来也很方便docker-compose
例如,存储在主目录中的以下文件允许使用一条命令启动 Kibana:
docker-compose up -d
:
# docker-compose.yml
version: "2"
kibana:
image: "docker.elastic.co/kibana/kibana:6.2.2"
container_name: "kibana"
environment:
- "ELASTICSEARCH_URL=http://<elasticsearch-endpoint>:9200"
- "XPACK_GRAPH_ENABLED=false"
- "XPACK_ML_ENABLED=false"
- "XPACK_REPORTING_ENABLED=false"
- "XPACK_SECURITY_ENABLED=false"
- "XPACK_WATCHER_ENABLED=false"
ports:
- "5601:5601"
restart: "unless-stopped"
此外,Kibana 服务可能是您在开发环境中的项目的一部分(如果使用 docker-compose)。