Docker搭建Elasticsearch方法
前往dockerhub官网:dockerhub 可查看elasticsearch相应版本
拉取镜像
选取一个版本拉取镜像,如docker pull elasticsearch:7.9.2
不输入版本默认拉取最新版
启动容器
映射端口为9200和9300
docker pull elasticsearch:7.9.2 //下载elasticsearch镜像
docker run -d --restart=always -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.9.2 //启动elasticsearch
docker exec -it elasticsearch /bin/bash //进入elasticsearch容器
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip //安装ik分词器
验证安装
通过docker ps
查看已启动容器
输入http://ip地址:9200
可以看到返回的json数据,证明安装成功
启动后服务自动关闭的问题
通过docker run命令启动容器后,docker会返回一串码代表成功启动,但是再通过docker ps
查看已启动容器,发现elasticsearch并未启动成功
通过docker ps -a
可以发现elasticsearch自动退出
查看容器异常日志
docker ps -a
可以查看到刚退出的elasticsearch容器,复制容器id
通过docker logs -f 容器id
查看日志,可以看到提示空间不足
jvm分配的内存大于系统可用内存数,所以没有足够的空间分配新空间了
需要前往jvm.options文件修改jvm启动参数
使用命令find / -name jvm.options
找到jvm.options文件位置
通过vim 文件位置
命令进入该文件
找到xms参数位置,将分配空间修改小一些,减小值到系统可用的值,改成
-Xms512m
-Xmx512m
下图中箭头指的换成上面的两个
有可能报max_map_count [65530] is too low之类的错误,需要重置max_map_count大小
如sysctl -w vm.max_map_count=262144
查看max_map_count
sysctl -a|grep vm.max_map_count
然后重新启动容器
ps.
容器启动失败后,需要进入docker ps -a并记下容器id
然后通过docker rm 容器id删除当前容器,才可重新启动
pps.
如果是通过阿里云/腾讯云等云服务器的docker部署,千万不要忘记开放端口号!!!!!!!
太长不看,一句话总结
内存太小,启动命令中添加参数修改虚拟机大小即可
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.9.2
如果报WARNING: IPv4 forwarding is disabled. Networking will not work..
错误
配置转发
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
配置成功,可以看到配置信息
检查容器是否正常访问网络
#重启docker服务
service docker restart
#查看运行过的容器
docker ps -a
#启动gitlab 容器
docker start gitblab2
#进入gitlab容器
docker attach gitlab2
#获取百度信息
curl baidu.com