一、环境配置
1.查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
2.设置max_map_count的值,因为ES 的默认分配的内存太较大,进程会被自动杀死。
sysctl -w vm.max_map_count=262144
二、下载镜像、创建挂载目录及文件
1.拉取镜像: https://hub.docker.com/_/elasticsearch?tab=tags
docker pull elasticsearch:7.16.3
2.创建挂载目录
# 创建目录 mkdir -p /usr/local/elasticsearch/data mkdir -p /usr/local/elasticsearch/config # 授予权限 chmod 777 /usr/local/elasticsearch/data chmod 777 /usr/local/elasticsearch/config
3.创建配置文件
cd /usr/local/elasticsearch/config touch elasticsearch.yml vim elasticsearch.yml 添加配置: # ======================== Elasticsearch Configuration ========================= cluster.name: my-application cluster.initial_master_nodes: ["node-1"] node.name: node-1 network.host: 0.0.0.0 http.port: 9200
三、创建容器
3.1 单节点
docker run -d --restart=always --name elasticsearch \ -p 9200:9200 -p 9300:9300 \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \ -v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /etc/localtime:/etc/localtime:ro \ elasticsearch:7.16.3
3.2 集群
3.2.1 节点配置
# es1.yml cluster.name: elasticsearch-cluster node.name: es-node1 network.bind_host: 0.0.0.0 network.publish_host: 192.168.252.160 http.port: 9200 transport.tcp.port: 9300 http.cors.enabled: true http.cors.allow-origin: "*" node.master: true node.data: true discovery.zen.ping.unicast.hosts: ["192.168.252.160:9300","192.168.252.160:9301"] discovery.zen.minimum_master_nodes: 1 cluster.initial_master_nodes: es-node1 # es2.yml cluster.name: elasticsearch-cluster node.name: es-node2 network.bind_host: 0.0.0.0 network.publish_host: 192.168.252.160 http.port: 9201 transport.tcp.port: 9301 http.cors.enabled: true http.cors.allow-origin: "*" node.master: true node.data: true discovery.zen.ping.unicast.hosts: ["192.168.252.160:9300","192.168.252.160:9301"] discovery.zen.minimum_master_nodes: 1 cluster.initial_master_nodes: es-node1
3.2.2 创建容器
# 节点1 docker run -d --restart=always --name es1 \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -p 9200:9200 -p 9300:9300 \ -v /etc/localtime:/etc/localtime:ro \ -v /usr/local/elasticsearch/node1/data:/usr/share/elasticsearch/data \ -v /usr/local/elasticsearch/node1/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ elasticsearch:7.16.3 # 节点2 docker run -d --restart=always --name es2 \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -p 9201:9201 -p 9301:9301 \ -v /etc/localtime:/etc/localtime:ro \ -v /usr/local/elasticsearch/node2/data:/usr/share/elasticsearch/data \ -v /usr/local/elasticsearch/node2/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ elasticsearch:7.16.3
如无报错,打开浏览器输入:http://IP:9200/看到入如下信息表示安装成功:
{ "name" : "node-1", "cluster_name" : "my-application", "cluster_uuid" : "1eGfPnFuR0-_rdn5aP9CAw", "version" : { "number" : "7.16.3", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "4e6e4eab2297e949ec994e688dad46290d018022", "build_date" : "2022-01-06T23:43:02.825887787Z", "build_snapshot" : false, "lucene_version" : "8.10.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
四、配置跨域
4.1 进入容器
由于要进行配置,因此需要进入容器当中修改相应的配置信息。
docker exec -it 容器id /bin/bash
4.2 进行配置
# 显示文件 ls 结果如下: LICENSE.txt README.textile config lib modules NOTICE.txt bin data logs plugins # 进入配置文件夹 cd config # 显示文件 ls 结果如下: elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles elasticsearch.yml jvm.options role_mapping.yml users # 修改配置文件 vi elasticsearch.yml # 加入跨域配置 http.cors.enabled: true http.cors.allow-origin: "*"
安装配置完成。
分类:
Docker
, ElasticSearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2020-02-11 Linux 安装、配置、卸载GitLab