4.1 Docker安装单机版ElasticSearch
因为我们后边还需要部署kibana、logstash容器,因此需要让es和kibana、logstash容器互联,这里首先创建一个网络
docker network create es-net
创建挂在目录
mkdir -p /home/docker/elasticsearch/
mkdir -p /home/docker/elasticsearch/logs
# 赋权限
chmod -R 777 /home/docker/elasticsearch/
下载elasticsearch镜像
docker pull elasticsearch:7.6.2;
修改虚拟内存区域大小,否则会因为过小而无法启动:
sysctl -w vm.max_map_count=262144
初次启动镜像
本次启动的容器,后边还会删除,本次启动的目的是生成一些文件,然后根据实际需要进行更改
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
--network es-net \
-d elasticsearch:7.6.2
参数解释:
-e “cluster.name=es-docker-cluster”:设置集群名称
-e “http.host=0.0.0.0”:监听的地址,可以外网访问
-e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:内存大小
-e “discovery.type=single-node”:非集群模式
-v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录(前边是宿主机目录,后边是容器目录)
-v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录(前边是宿主机目录,后边是容器目录)
-v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
–privileged:授予逻辑卷访问权
–network es-net :加入一个名为es-net的网络中
-p 9200:9200:端口映射配置
在浏览器中输入:http: //192.168.52.128:9200, 即可看到elasticsearch的响应结果:
复制配置文件
docker cp elasticsearch:/usr/share/elasticsearch/config/ /home/docker/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/data/ /home/docker/elasticsearch/
docker cp elasticsearch:/usr/share/elasticsearch/plugins/ /home/docker/elasticsearch/
编辑jvm.options:根据实际情况修改JVM内存大小
cd /home/docker/elasticsearch//config/
vim jvm.options
默认jvm配置
-Xms1g
-Xmx1g
编辑elasticsearch.yml:追加如下内容
# 追加内容
http.cors.enabled: true
http.cors.allow-origin: "*"
node.name: node-1
discovery.seed_hosts: ["127.0.0.1"]
删除原有容器:
docker stop elasticsearch
docker rm elasticsearch
挂载启动新容器
docker run --name elasticsearch --restart=always \
-p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \
-v /home/docker/elasticsearch/config:/usr/share/elasticsearch/config \
-v /home/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
--network=es-net \
-d elasticsearch:7.6.2
再次在浏览器中输入:http: //192.168.119.128:9200