1.部署单点ElasticSearch
1.1.创建网络
因为我们还需要部署kibana
容器,因此需要让ElasticSearch
和kibana
容器互联。这里先创建一个网络:
docker network create es-net
1.2.拉取镜像
考虑到ElasticSearch
的兼容性,这里ElasticSearch
、kibana
统一下载8.6.2
版本
# 拉取镜像
docker pull elasticsearch:8.6.2
1.3.第一次执行docker脚本
docker run -it \
-p 9200:9200 \
-p 9300:9300 \
--name es \
--net es-net \
-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
-e "discovery.type=single-node" \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
elasticsearch:8.6.2
注意第一次执行脚本不要加-d
这个参数,否则看不到服务首次运行时生成的随机密码和随机enrollment token
1.4.创建Elasticsearch挂载目录
mkdir -p /home/elk8.6.2/elasticsearch
1.5.给创建的文件夹授权
sudo chown -R 1000:1000 /home/elk8.6.2/elasticsearch
1.6.将容器内的文件复制到主机上
docker cp es:/usr/share/elasticsearch/config /home/elk8.6.2/elasticsearch
docker cp es:/usr/share/elasticsearch/data /home/elk8.6.2/elasticsearch
docker cp es:/usr/share/elasticsearch/plugins /home/elk8.6.2/elasticsearch
docker cp es:/usr/share/elasticsearch/logs /home/elk8.6.2/elasticsearch
1.7.删除容器
docker rm -f es
1.8.修改docker脚本,增加-v挂载目录和-d参数
docker run -it \
-d \
-p 9200:9200 \
-p 9300:9300 \
--name es \
--net es-net \
-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
-e "discovery.type=single-node" \
-e LANG=C.UTF-8 \
-e LC_ALL=C.UTF-8 \
-v /home/elk8.6.2/elasticsearch/config:/usr/share/elasticsearch/config \
-v /home/elk8.6.2/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/elk8.6.2/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/elk8.6.2/elasticsearch/logs:/usr/share/elasticsearch/logs \
elasticsearch:8.6.2
1.9.修改配置/home/elk8.6.2/elasticsearch/config/elasticsearch.yml:
增加:xpack.monitoring.collection.enabled: true
说明:添加这个配置以后在kibana
中才会显示联机状态,否则会显示脱机状态
1.10.重启容器
docker restart es
1.11.Elasticsearch.8X以上默认开启了X-Pack安全功能
说明:请求Elasticsearch
必须使用https
测试:https://ip:9200
用户名就是:elastic
,密码在第一次启动时保存下来的信息中查找,输入账号密码,即可看到elasticsearch
的响应结果:
看到这种信息说明启动成功了。
1.12.如果账户密码忘了,设置修改账号密码如下:
docker exec -it es /bin/bash
cd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive
ElasticSearch
设置后账户:elastic
,密码:123456
2.部署kibana
kibana
可以给我们提供一个ElasticSearch
的可视化界面,便于我们使用。
2.1.拉取镜像
# 拉取镜像
#注意要与ElasticSearch版本一致
docker pull kibana:8.6.2
2.2.第一次执行docker启动脚本
docker run -it \
-d \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kibana \
-p 5601:5601 \
--net es-net \
kibana:8.6.2
2.3.创建kibana挂载目录
mkdir -p /home/elk8.6.2/kibana
2.4.给创建的文件夹授权
sudo chown -R 1000:1000 /home/elk8.6.2/kibana
2.5.将容器内的文件复制到主机上
docker cp kibana:/usr/share/kibana/config /home/elk8.6.2/kibana
docker cp kibana:/usr/share/kibana/data /home/elk8.6.2/kibana
docker cp kibana:/usr/share/kibana/plugins /home/elk8.6.2/kibana
docker cp kibana:/usr/share/kibana/logs /home/elk8.6.2/kibana
2.6.删除容器
docker rm -f kibana
2.7.修改配置文件/home/elk8.6.2/kibana/config/kibana.yml:
- 增加:
i18n.locale: “zh-CN”
- 修改:
elasticsearch.hosts: [‘https://172.20.0.2:9200’]
,将IP
改成elasticsearch
的docker ip
,注意一定要用https
- 修改:
xpack.fleet.outputs: [{id: fleet-default-output, name: default, is_default: true, is_default_monitoring: true, type: elasticsearch, hosts: [‘https://172.20.0.2:9200’], ca_trusted_fingerprint: xxxxxxxxxx}]
将IP
改成elasticsearch
的docker ip
,注意一定要用https
2.8.修改docker启动脚本,增加挂载目录
docker run -it \
-d \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kibana \
-p 5601:5601 \
--net es-net \
-v /home/elk8.6.2/kibana/config:/usr/share/kibana/config \
-v /home/elk8.6.2/kibana/data:/usr/share/kibana/data \
-v /home/elk8.6.2/kibana/plugins:/usr/share/kibana/plugins \
-v /home/elk8.6.2/kibana/logs:/usr/share/kibana/logs \
kibana:8.6.2
2.9.查看kibana日志
docker logs -f kibana
此时,在浏览器输入地址访问:http://192.168.1.111:5601
,即可看到结果。
2.2.DevTools
kibana
中提供了一个DevTools
界面:
这个界面中可以编写DSL
来操作elasticsearch
。并且对DSL
语句有自动补全功能。
4.部署es集群
部署es
集群可以直接使用docker-compose
来完成,不过要求你的Linux
虚拟机至少有4G
的内存空间
首先编写一个docker-compose
文件,内容如下:文章来源:https://www.toymoban.com/news/detail-779181.html
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
运行docker-compose
以启动集群:文章来源地址https://www.toymoban.com/news/detail-779181.html
docker-compose up
到了这里,关于Docker安装部署ElasticSearch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!