为什么要使用 Docker来部署 Elasticsearch 和 Kibana 呢,传统使用软件在操作系统上安装和配置的方法过于繁琐,并且受一些跨平台的约束,例如Mac、Windows、Linux等,所以无论安装什么软件,通过 Docker 进行部署是最为简单并且便捷的。
Elasticsearch
启动容器
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /data/elasticsearch:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:7.9.2
参数详解
docker run 创建并启动容器
-d 后台运行
--name elasticsearch 指定容器唯一的名称,方便管理
-p 9200:9200 -p 9300:9300 映射容器端口到宿主机上
-e "discovery.type=single-node" 环境变量配置单机模式
-v /data/elasticsearch:/usr/share/elasticsearch/data 持久化数据存储
docker.elastic.co/elasticsearch/elasticsearch:7.9.2 镜像名称及版本
修改配置文件
宿主机上运行,进入容器的命令行终端docker exec -it elasticsearch /bin/bash
进入容器后,容器内编辑配置vi config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
退出容器exit
重启容器使配置生效docker restart elasticsearch
为了添加安全性,启用账号密码的鉴权功能
宿主机上运行,进入容器的命令行终端docker exec -it elasticsearch /bin/bash
随机产生密码并设置bin/elasticsearch-setup-passwords auto
Kibana
启动容器
docker run -d --name kibana --link elasticsearch -e ELASTICSEARCH_URL=http://elasticsearch:9200 -p 5601:5601 kibana:7.9.2
参数详解
docker run 创建并启动容器
-d 后台运行
--name kibana 指定容器唯一的名称,方便管理
--link elasticsearch 使kibana与elasticsearch同处于一个网络方便主机名通讯
-p 5601:5601 映射容器端口到宿主机上
-e ELASTICSEARCH_URL=http://elasticsearch:9200 环境变量配置ES地址
kibana:7.9.2 镜像名称及版本
修改配置文件
宿主机上运行,进入容器的命令行终端docker exec -it kibana /bin/bash
进入容器后,容器内编辑配置vi config/kibana.yml
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.security.enabled: true
elasticsearch.username: elasticelasticsearch.password: xxx
退出容器exit
重启容器使配置生效docker restart kibana