You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用单行命令在容器中部署本地Kibana对接Elasticsearch容器?

快速容器化部署Kibana社区版(仅用控制台)

没问题!我来帮你搞定这个Kibana社区版的容器化部署,专门用来对接本地的Elasticsearch,完全不需要依赖X-Pack,就能用你需要的Dev Tools(原Sense)控制台功能。

直接可用的单行命令

根据你的Elasticsearch版本,选择对应的Kibana社区版镜像(版本必须完全匹配,比如ES是8.11.3,Kibana也要用8.11.3-community),执行以下命令:

docker run --name kibana-community -d -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://host.docker.internal:9200 docker.elastic.co/kibana/kibana:8.x-community

命令参数说明

  • --name kibana-community:给容器设置一个易识别的名称,方便后续管理(比如停止/重启)
  • -d:让容器在后台运行,不占用当前终端
  • -p 5601:5601:将本地的5601端口映射到容器内的Kibana端口,浏览器访问http://localhost:5601即可进入界面
  • -e ELASTICSEARCH_HOSTS=http://host.docker.internal:9200:指定Kibana要连接的Elasticsearch地址
    • 如果你的ES是本地宿主机运行的(非容器):Windows/macOS用host.docker.internal:9200,Linux可以用--network host参数替换端口映射,然后ES地址设为http://localhost:9200
    • 如果你的ES也是容器运行的:建议创建一个共享Docker网络,用容器名访问更稳定(见下方补充说明)
  • docker.elastic.co/kibana/kibana:8.x-community:官方的Kibana社区版镜像,把8.x替换成和你ES完全一致的版本号

关键注意事项

  • 版本严格匹配:Kibana和Elasticsearch的主版本、次版本、修订号必须完全相同,否则会出现兼容性问题甚至无法连接
  • ES认证处理:如果你的Elasticsearch开启了默认的安全认证(8.x版本默认开启),需要额外添加两个环境变量:
    -e ELASTICSEARCH_USERNAME=elastic -e ELASTICSEARCH_PASSWORD=你的ES初始密码
    
  • 容器间网络优化:如果ES也是容器,先创建一个共享网络:
    docker network create es-shared-net
    
    启动ES时加入这个网络:--network es-shared-net,然后启动Kibana时也加入这个网络,并把ELASTICSEARCH_HOSTS设为http://你的ES容器名称:9200,这样容器间可以直接通过名称通信,不用依赖宿主机IP

访问控制台

启动成功后,打开浏览器访问http://localhost:5601,在左侧导航栏找到Dev Tools,就是你需要的Sense替代控制台工具,直接可以和Elasticsearch交互了。

内容的提问来源于stack exchange,提问作者Bick

火山引擎 最新活动