1. install ES

  1. 【单机启动版本】
  2. #拉取镜像
  3. docker pull elasticsearch:7.7.0
  4. #启动镜像
  5. 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
  6. ################下面是挂载数据卷的执行命令##################
  7. docker run -d --name elasticsearch \
  8. -v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  9. -v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
  10. -v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
  11. -v /etc/localtime:/etc/localtime \
  12. -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
  13. -e "discovery.type=single-node" \
  14. -p 9200:9200 -p 9300:9300 \
  15. --restart=always \
  16. elasticsearch:6.8.13
  17. # #########################【集群启动ES】
  18. 具体的博客:https://www.cnblogs.com/toov5/p/11361413.html
  19. 1. 启动命令:
  20. 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.0
  21. docker 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.0
  22. docker 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: "*"

image.png

退出并且重启服务。

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

image.png

修改完成在复制回容器
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