1. install ES
【单机启动版本】#拉取镜像docker pull elasticsearch:7.7.0#启动镜像docker run --name elasticsearch7 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9201:9200 -p 9301:9300 elasticsearch:7.7.0################下面是挂载数据卷的执行命令##################docker run -d --name elasticsearch \-v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \-v /etc/localtime:/etc/localtime \-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-p 9200:9200 -p 9300:9300 \--restart=always \elasticsearch:6.8.13# #########################【集群启动ES】具体的博客:https://www.cnblogs.com/toov5/p/11361413.html1. 启动命令:docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9203:9200 -p 9303:9300 -p 5603:5601 -v /docker/es/config:/usr/share/elasticsearch/config -v /docker/es/plugins1:/usr/share/elasticsearch/plugins -v /docker/es/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch:7.7.0docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9203:9200 -p 9303:9300 -v /home/soft/ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/soft/ES/data1:/usr/share/elasticsearch/data --name ES01 elasticsearch:7.7.0docker run --name es01 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9203:9200 -p 9303:9300 elasticsearch:7.7.0
其中的参数说明:
--name表示镜像启动后的容器名称
-d: 后台运行容器,并返回容器ID;
-e: 指定容器内的环境变量
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
【问题】挂载目录出错
指定某一个文件挂载到宿主机上的特定某一个文件(比如,将容器中的一个yml指定到宿主机上的一个yml。)就会出现一些错误。
解决方式:挂载目录的时候仅仅挂载一个文件夹,对于特定的文件,暂时先不要挂载。
2. install es-head
作用:
使用可视化的界面查看ES中的一些信息。
#拉取镜像
docker pull mobz/elasticsearch-head:5
#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
#启动容器
docker start elasticsearch-head
or
docker start 容器id (docker ps -a 查看容器id )
验证:
浏览器打开: http://IP:9100
3. 【问题】连接失败
尝试连接easticsearch会发现无法连接上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
解决方法:
# 修改docker中elasticsearch的elasticsearch.yml文件
docker exec -it elasticsearch /bin/bash (进不去使用容器id进入)
vi config/elasticsearch.yml
# 在最下面添加2行
http.cors.enabled: true
http.cors.allow-origin: "*"

退出并且重启服务。
exit
docker restart 容器id
4. 【问题】406 错误码
ElasticSearch-head 操作时不修改配置,默认会报 406错误码
解决方法:
#复制vendor.js到外部
docker cp fa85a4c478bf:/usr/src/app/_site/vendor.js /usr/local/
#修改vendor.js
vim vendor.js

修改完成在复制回容器
docker cp /usr/local/vendor.js fa85a4c478bf:/usr/src/app/_site
重启elasticsearch-head
docker restart 容器id
最好就可以查询到es数据了
5. 安装ik分词
这里采用离线安装
下载分词器压缩包
下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
将IK分词器上传到/tmp目录中(xftp)
将分词器安装进容器中
#将压缩包移动到容器中
docker cp /tmp/elasticsearch-analysis-ik-7.7.0.zip elasticsearch:/usr/share/elasticsearch/plugins
#进入容器
docker exec -it elasticsearch /bin/bash
#创建目录
mkdir /usr/share/elasticsearch/plugins/ik
#将文件压缩包移动到ik中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.7.0.zip /usr/share/elasticsearch/plugins/ik
#进入目录
cd /usr/share/elasticsearch/plugins/ik
#解压
unzip elasticsearch-analysis-ik-7.7.0.zip
#删除压缩包
rm -rf elasticsearch-analysis-ik-7.7.0.zip
退出并重启镜像。
6. 安装Kibana
注意: Kibana 的版本要和ES的版本严格一致。
通过这个对ES进行操作。
1. 拉取镜像
docker pull kibana:6.4.2
2. 运行容器
# 默认值: "http://localhost:9200" 用来处理所有查询的 Elasticsearch 实例的 URL
docker run --name kinbana7 -e ELASTICSEARCH_URL=http://182.92.186.182:9200 -p 5601:5601 kibana:7.7.0
# 【经过试验表明,这个才是指定具体连接哪个ES的命令】
docker run --name kinbana7 -e ELASTICSEARCH_HOSTS=http://182.92.186.182:9201 -p 5602:5601 kibana:7.7.0
-e : 指示连接哪里的ES服务。
3. 访问
ip 地址:5601
