• Docker部署Elasticsearch及安装后自动关闭的问题


    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
    
    作者:little-cheap

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 相关阅读:
    图论100题 1~5题
    定价 题解
    题解 编码问题【NOIP1995普及+提高】
    【题解】2020牛客NOIP赛前集训营-普及组(第二场)
    数论学习笔记
    el-tree 点击选中的数据集合
    nginx 本地配置(解决跨域问题)
    原生对象写法,dom调用方法
    手写无缝轮播banner
    element Notification 通知文字换行小技巧
  • 原文地址:https://www.cnblogs.com/little-cheap/p/15317861.html
Copyright © 2020-2023  润新知