docker部署单机es,es-head,es集群,亲测有效

docker部署单机es

#拉取镜像

docker pull elasticsearch:6.5.4

#创建容器

docker create --name elasticsearch --net host -e "discovery.type=single-node" -e "network.host=192.168.88.101" elasticsearch:6.5.4

#启动

docker start elasticsearch

#查看日志

docker logs -f elasticsearch

启动和查看日志也能够两个命令一块写

docker start elasticsearch && docker logs -f elasticsearch

访问http://192.168.88.101:9200端口,查看安装是否成功

es图形化界面elasticsearch-head 的安装

#拉取镜像

docker pull mobz/elasticsearch-head:5

#创建容器

docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

#启动容器

docker start elasticsearch-head && docker logs -f elasticsearch-head

访问http://192.168.88.101:9100端口,查看安装是否成功

安装后可能出现的两个问题
1.由于前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置
我们需要进入elasticsearch容器内部,修改配置文件elasticsearch.yml
解决方式
#拿到运行容器elasticsearch 的 id

docker ps -a   

#进入正在运行的容器/bin/bash目录

docker exec -it ******(容器id) /bin/bash

进入配置文件

cd ./config

修改配置文件,在配置文件中添加允许跨域信息

vi elasticsearch.yml
http.cors.enabled: true 
http.cors.allow-origin: "*"

重启 elasticsearch-head容器

docker restart elasticsearch-head

2.通过es-head新增索引时如果新建索引时,报错{“error”:“Content-Type header [application/x-www-form-urlencoded] is not supported”,“status”:406}
解决方法:
1、进入head安装目录;docker exec是进入正在运行的容器

docker exec -it 镜像id /bin/bash   

2、打开文件夹_site,

cd _site/

3、编辑vendor.js 共有两处
①. 6886行 contentType: "application/x-www-form-urlencoded改成contentType: “application/json;charset=UTF-8”
②. 7574行 var inspectData = s.contentType === “application/x-www-form-urlencoded” &&改成var inspectData = s.contentType === “application/json;charset=UTF-8” &&

Docker内部是不能使用vi命令的,如果要编辑可以先把文件拷贝出来,修改后拷贝进去即可
我容器的vendor.js的路径是/usr/src/app/_site/vendor.js,我将其拷贝到了root目录下
注意两个语法的不同

docker cp b09b1c2bece8:/usr/src/app/_site/vendor.js /root

修改之后拷贝进去

docker cp /root/vendor.js b09b1c2bece8:/usr/src/app/_site/vendor.js

然后重新启动header插件即可

docker restart b09b1c2bece8

es集群安装

新建集群目录,存储集群信息

mkdir /haoke/es-cluster 
cd /haoke/es-cluster 
mkdir node01 
mkdir node02

#将elasticsearch6.5.4的tar.gz包上传解压复制安装目录下的elasticsearch.yml、jvm.options文件,

cp elasticsearch.yml jvm.options /haoke/es-cluster/node01
cp elasticsearch.yml jvm.options /haoke/es-cluster/node02

做如下修改
#node01的配置:

cluster.name: es-itcast-cluster 
node.name: node01 
node.master: true 
node.data: true 
network.host: 192.168.88.101 
http.port: 9200 
discovery.zen.ping.unicast.hosts: ["192.168.88.101"] 
discovery.zen.minimum_master_nodes: 1 
http.cors.enabled: true 
http.cors.allow-origin: "*"

#node02的配置:

cluster.name: es-itcast-cluster 
node.name: node02 
node.master: false 
node.data: true 
network.host: 192.168.88.101 
http.port: 9201 
discovery.zen.ping.unicast.hosts: ["192.168.88.101"] 
discovery.zen.minimum_master_nodes: 1 
http.cors.enabled: true 
http.cors.allow-origin: "*"

将jvm.options文件修改初始和最大堆内存大小

-Xms128m
-Xmx128m

#创建容器

docker create --name es-node01 --net host -v /haoke/es-cluster/node01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /haoke/es-cluster/node01/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /haoke/es-cluster/node01/data:/usr/share/elasticsearch/data elasticsearch:6.5.4
docker create --name es-node02 --net host -v /haoke/es-cluster/node02/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /haoke/es-cluster/node02/jvm.options:/usr/share/elasticsearch/config/jvm.options -v /haoke/es-cluster/node02/data:/usr/share/elasticsearch/data elasticsearch:6.5.4

#启动容器

docker start es-node01 && docker logs -f es-node01 
docker start es-node02 && docker logs -f es-node02

启动时会报文件无权限操作的错误
需要对node01和node02进行chmod 777 的操作,防止容器启动时需要访问root用户下面的文件夹因没有权限而报错

cd node01/

-R是递归 指定任何一个人都可以对该目录进行修改

chmod 777 data  -R   

如果出现max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
1.在配置文件中添加vm.max_map_count=655360

vi /etc/sysctl.conf
vm.max_map_count=655360

2.加载系统参数

sysctl -p

3.重新启动

docker restart es-node01 && docker logs -f es-node01 
docker restart es-node02 && docker logs -f es-node02
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值