Docker Centos镜像下安装Elasticsearch
运行docker Centos镜像
- 下载Centos镜像,我的版本是最新版本 centos:latest,这里不多说,可以自行看docker文档安装,地址:https://www.runoob.com/docker/docker-install-centos.html
docker images //查看镜像
-
启动容器并将9200和9300端口、路径映射到本机(映射路径是将宿主机下载的Elasticsearch安装包映射到容器里,映射路径自己定义)
docker run -itd -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -v /g/**/WWW:/home/wwwroot --name es5.1.1 centos:latest
- 查看容器并进入
docker ps
docker exec -it es5.1.1 /bin/bash
安装java环境
我当前Elasticsearch版本是5.1.1,所以java环境要求:
a.JDK8+
b.系统可用内存>2G
下面开始安装java,linux可以直接用yum方式安装jdk8,非常方便
yum search java|grep jdk
yum install java-1.8.0-openjdk*
java -version
安装Elasticsearch5.1.1
为什么Elasticsearch选择这个版本呢?
因为它是一个集成包,elasticsearch中文发行版,针对中文集成了相关插件,方便新手学习测试。下载地址:https://github.com/medcl/elasticsearch-rtf
我这里已经下载好了,放在/usr/local目录下
接着解压,因为是zip格式,所以要安装支持ZIP的工具
yum install -y unzip zip //安装unzip
unzip elasticsearch-rtf-master.zip //解压
查看elasticsearch插件
bin/elasticsearch-plugin list
但我们现在只需要analysis-ik这个插件,如果你的内存比较少的情况下可以把其他不必要的插件卸载掉以减少我们的内存。
我们可以先把这些插件存在一个地方,名为plugin.log
bin/elasticsearch-plugin list > /tmp/plugin.log
接着把需要的ik插件从列表里去掉
vi /tmp/plugin.log
然后将不需要的插件打印出来
cat /tmp/plugin.log
最后删除掉
cat /tmp/plugin.log|xargs -I {} bin/elasticsearch-plugin remove {}
代码入下:
现在已经删除完毕了,可以查看一下插件列表
bin/elasticsearch-plugin list
接下来就是要启动它了,但要注意:es不允许root用户启动,会报错,所以要新建另外一个用户启动es
创建新用户
- 创建用户组,把新用户添加到当前组
groupadd shazhus //用户组名
useradd shazhu -g shazhus - 修改密码
passwd shazhu
- 设置es文件夹权限
chown -R shazhu:shazhus /usr/local/elasticsearch-rtf-master
切换用户
su shazhu
启动elasticsearch
bin/elasticsearch -d
查看日志文件
tail logs/elasticsearch.log
容器访问
curl 127.0.0.1:9200
但这些你会发现,容器能够正常访问,但宿主机却提示拒绝链接,问题端口映射也做了,究竟是什么问题呢?
其实es启动后默认的ip地址是localhost,但linux环境主机的localhost不是127.0.0.1了。所以就无法访问。
解决办法
把es默认ip改为0.0.0.0即可
- 进入es文件夹下的config/elasticsearch.yml,把network.host的ip改为0.0.0.0,去掉注释,保存。
vi config/elasticsearch.yml
- 然后启动es,查看日志文件看能不能正常启动。