一、环境配置

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: "*"

安装配置完成。

posted on 2022-02-11 16:08  java先生  阅读(857)  评论(0编辑  收藏  举报