注意:ES、kibana、ik的版本要一致
1、安装es
# 拉取镜像
docker pull elasticsearch:7.4.2
# 创建文件、文件夹
mkdir -p /elasticsearch/data
mkdir -p /elasticsearch/logs
mkdir -p /elasticsearch/config
mkdir -p /elasticsearch/plugins
vi /elasticsearch/config/elasticsearch.yml
在 elasticsearch.yml文件中填入以下内容
# 修改集群名称
cluster.name: "docker-cluster"
# 修改网络请求host,0.0.0.0可以被所有外网访问到
network.host: 0.0.0.0
http.port: 9200
# 开启es跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
# 开启安全控制(即登录es和kibana后需要账号密码)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
http.cors.allow-headers: Authorization,Content-Type,X-Requested-with,Content-Length
赋予文件夹权限
chmod -R 777 /elasticsearch
运行
docker run --name elasticsearch --restart=always -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-e TZ="Asia/Shanghai" \
-e LANG="en_US.UTF-8" \
-e ELASTIC_PASSWORD="123456" \
-v /elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /elasticsearch/data:/usr/share/elasticsearch/data \
-v /elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
测试访问
2、安装es-head可视化插件
docker pull mobz/elasticsearch-head:5
docker run --name es-head -p 9100:9100 --restart=always -d mobz/elasticsearch-head:5
注意:
es-head访问的时候如果elasticsearch.yml中 配置了安全控制的最后三行内容,那么访问访问地址为:
192.168.206.214:9100/?auth_user=elastic&auth_password=123456
如果没有配置安全控制的最后三行内容,访问地址为:
ip:9100
安全控制的最后三行内容也就是这个。
3、安装IK分词器
#下载地址
https://github.com/medcl/elasticsearch-analysis-ik/tags
下载完成之后将文件内容放到挂载文件夹 plugins 下面,随后重新启动es
4、安装kibana
#查看ES内部地址 下面安装,运行kibana要用到
docker inspect elasticsearch |grep IPAddress
# 拉取镜像
docker pull kibana:7.4.2
# 创建文件夹
mkdir -p /elasticsearch/kibana/config
cd /elasticsearch/kibana/config
# 创建文件
vi kibana.yml
将下面内容添加到kibana.yml文件中
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://172.17.0.2:9200" ] # http://172.17.0.2:9200 TODO 修改为自己的ES内部地址
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: "elastic" # es账号
elasticsearch.password: "123456" # es密码
i18n.locale: zh-CN # 中文
运行
# 没有编写kibana.yml文件的启动方式
docker run --name kibana --restart=always -e ELASTICSEARCH_HOSTS="http://172.17.0.2:9200" -p 5601:5601 -d kibana:7.4.2
# 编写了kibana.yml文件的启动方式
docker run --name kibana --restart=always \
-v /elasticsearch/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-p 5601:5601 -d kibana:7.4.2
测试访问