1、创建docker-componse文件
elasticsearch:
image: elasticsearch:7.17.6
restart: always
hostname: es1
container_name: es-single
volumes:
- ./elasticsearch/data:/usr/share/elasticsearch/data
- ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
- discovery.type=single-node
ports:
- '9200:9200'
- '9300:9300'
privileged: true
2、创建es主目录
本人使用主目录/root/my-project/elasticsearch
创建映射容器文件夹及配置文件
创建es配置文件elasticsearch.yml
# 集群名称
cluster.name: elasticsearch-cluster
# 节点名称
node.name: es-node-1
# 绑定host,0.0.0.0代表当前节点的ip
network.host: 0.0.0.0
# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip) network.publish_host: 43.143.173.212
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 是否支持跨域,默认为false
http.cors.enabled: true
# 当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 表示这个节点是否可以充当主节点
node.master: true
# 是否充当数据节点
node.data: true
# 所有主从节点ip:port
#discovery.seed_hosts: ["43.143.173.212:9300"]
#本地只有一个节点,无法正常启动,先注释 # 这个参数决定了在选主过程中需要 有多少个节点通信 预防脑裂 N/2+1
discovery.zen.minimum_master_nodes: 1
#初始化主节点
#cluster.initial_master_nodes: ["es-node-1"]
#本地只有一个节点,无法正常启动,先注释
3、添加分词器
去分词器官网下载对应es版本
4、启动容器
docker-compose up -d elasticsearch