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参数查看是否能启动成功,以便于排查问题。

最后修改:2021 年 10 月 10 日
如果觉得我的文章对你有用,请随意赞赏