1. 安装docker
yum install docker -y
自行配置docker国内镜像源,否则拉取镜像比较慢
2. 编写Dockerfile
我这里是安装的7.5.1版本,可以自行修改成你要的版本
FROM elasticsearch:7.5.1
ENV VERSION=7.5.1
# https://github.com/medcl/elasticsearch-analysis-ik/releases
ADD https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v${VERSION}/elasticsearch-analysis-ik-$VERSION.zip /tmp/
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install -b file:///tmp/elasticsearch-analysis-ik-$VERSION.zip
RUN rm -rf /tmp/*
3. 制作docker镜像
#执行命令的目录要有上面编写的Dockerfile文件
docker build -t es .
4. 配置Elasticsearch
我的数据、日志以及配置文件是配置通过docker映射到宿主机上的
日志:/data/es/logs/
数据:/data/es/data/
配置文件:/data/es/elasticsearch.yml
注意:以上目录需要给777
权限解决写入权限问题
xpack.ml.enabled: false
#memory
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#开启跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
#节点名称
node.name: collection_song
#节点ip 单机默认回环地址 集群必须绑定真实ip
network.host: 0.0.0.0
http.port: 9200
#集群名称
cluster.name: elasticsearch
#初始化选举的节点名称
cluster.initial_master_nodes: ["collection_song"]
#用于发现其他节点 格式host:port
discovery.seed_hosts: ["127.0.0.1:9200"]
修改系统参数
添加参数到 /etc/sysctl.conf
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
不然会出现 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
的错误
6. 启动镜像
docker run -d --rm --name es -p 9200:9200 -p 9300:9300 -v /data/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/es/data:/usr/share/elasticsearch/data -v /data/es/logs:/usr/share/elasticsearch/logs es
可以先去除-d参数查看是否能启动成功,以便于排查问题。