一、自定义网络

保证同一网络下的容器(ElasticSearch、Logstash、Kibana)相互访问

1、创建自定义网络ELK

  1. docker network create elk

2、查看已有网络

  1. docker network ls

3、删除网络

不需要时,删除网络

  1. docker network rm elk

二、Docker安装Elasticsearch

1、创建目录

  1. mkdir -p /opt/elasticsearch/{config,data}
  2. chmod 777 /opt/elasticsearch/{config,data}

2、拉取镜像

  1. docker pull elasticsearch:7.16.2

3、配置文件

(1)创建配置文件elasticsearch.yml

  1. vi /opt/elasticsearch/config/elasticsearch.yml

(2)添加配置信息

  1. # 允许通过本机所有IP访问
  2. http.host: 0.0.0.0
  3. # 是否支持跨域,默认为false
  4. http.cors.enabled: true
  5. http.cors.allow-origin: "*"

4、创建和启动容器

  1. docker run -d --name elasticsearch --net elk --restart always \
  2. -p 9200:9200 -p 9300:9300 \
  3. -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  4. -e "discovery.type=single-node" \
  5. -v /opt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  6. -v /opt/elasticsearch/data:/usr/share/elasticsearch/data \
  7. elasticsearch:7.16.2

JVM堆内存大小设置 128M 时,安装 IK 分词器的时候会报错,建议堆内存设置至少 256M。

三、Docker安装IK分词器

1、获取分词器链接

访问 https://github.com/medcl/elasticsearch-analysis-ik/releases 查找与 ElasticSearch 版本对应的分词器,复制其完整下载地址。

2、以交互方式进入elasticsearch

  1. docker exec -it elasticsearch /bin/sh

3、进入bin目录

  1. cd bin/

4、安装分词器

  1. elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.16.2/elasticsearch-analysis-ik-7.16.2.zip

5、查看分词器

  1. elasticsearch-plugin list

6、重启Elasticsearch

  1. docker restart elasticsearch

四、Docker安装Kibana

1、拉取镜像

  1. docker pull kibana:7.16.2

kibana的版本号要和elasticsearch的一样,否则可能无法正常使用

2、创建和启动容器

  1. docker run -d --name kibana --net elk --restart always -p 5601:5601 kibana:7.16.2

3、访问kibana

访问http://ip:5601,就可以看到Kibana界面。
image.png