1 安装elasticsearch
1.1 安装镜像
# 下载镜像
sudo docker pull elasticsearch:7.6.2
# 单机版 创建容器
sudo docker run --name elasticsearch -itd \
--restart always \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-e TAKE_FILE_OWNERSHIP=true \
-p 9200:9200 \
-p 9300:9300 \
-v /home/es/data:/usr/share/elasticsearch/data \
elasticsearch:7.6.2
# 集群,单节点配置
sudo docker run --name elasticsearch -itd \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e TAKE_FILE_OWNERSHIP=true \
-e cluster.name=es-cluster \
-e node.name=es-node1 \
-e discovery.zen.minimum_master_nodes=1 \
-e discovery.seed_hosts=es-node1 \
-e cluster.initial_master_nodes=es-node1 \
-e http.cors.enabled=true \
-e http.cors.allow-origin="*" \
-p 9200:9200 \
-p 9300:9300 \
-v /home/es/data:/usr/share/elasticsearch/data \
elasticsearch:7.6.2
1.2 启动
# 进入容器
sudo docker exec -it elasticsearch /bin/bash
# 切换用户,elasticsearch不允许使用root启动程序,容器中默认有elasticsearch用户
su elasticsearch
# 安装ik分词器,进入“elasticsearch/bin“目录下,在线安装分词器
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
# 配置跨域,进入“elasticsearch/config“目录,在elasticsearch.yml文件的末尾添加如下内容
http.cors.enabled: true
http.cors.allow-origin: "*"
# 启动elasticsearch,进入“elasticsearch/bin“目录下,执行下面的命令,或者./elasticsearch
# 注意默认elasticsearch已经启动了,千万不要再次启动。
# elasticsearch
# 在浏览器中输入
http://localhost:9200/
1.3 出现的错误
(1)“failed to obtain node locks”
删除“elasticsearch/data/"目录下的nodes文件
(2)"can not run elasticsearch as root"
使用“su elasticsearch”,切换用户。
(3)"max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]"
修改宿主机的“/etc/sysctl.conf”文件,添加以下内容
# 修改文件
sudo vim /etc/sysctl.conf
# 在最后一行添加,以下内容
vm.max_map_count=262144
# 更新配置
sudo sysctl -p
2 安装elasticsearch-head
2.1 下载elasticsearch-head
# 下载镜像
sudo docker pull mobz/elasticsearch-head:5
# 创建容器
sudo docker run -d -p 9100:9100 mobz/elasticsearch-head:5
2.2 启动镜像
容器启动时,elasticsearch-head默认已经启动。
# 在浏览器中输入
http://localhost:9200/