Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

1. 下载 ElasticSearch

最开始使用 docker search命令搜索后,就直接使用 docker pull命令拉取镜像,但没想到拉取失败,后来到官网看了看,原来没有标签为 lasted的镜像,所以,正确的拉取方法应该是: docker pull elasticsearch:tag

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

2. 运行 ElasticSearch

2.1 失败的启动

事先说明一下, ElasticSearch启动时默认使用2GB的内存,为了防止内存占用过大,一般都限制了它的运行内存,如下命令设置为256MB。

然后我很自信满满的运行了下面的命令,其中 -d表示后台运行, -p 9200:9200是进行端口映射, --name ES01是指定容器的名称, 7.14.0是版本号。 9200端口用于Web通信, 9300用于分布式下各节点间的通信。

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300
--name ES01 elasticsearch:7.14.0

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

然后使用 docker ps -a查询了一下运行情况,确实在运行,但是使用浏览器访问 http://localhost:9200却一直失败,重新查询运行情况,居然 退出了。

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

2.2 查找解决方法

之后使用 docker logs 容器ID或容器名称查询容器启动的日志,一行行查找,终于找到了错误原因:

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]
  • 第一个是 vm.max_map_count的值太低,需要重新设置。
  • 第二个是配置中至少需要设置 [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]中的一个。

2.2.1 设置 vm.max_map_count

设置方法: sysctl -w vm.max_map_count=262144

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

2.2.2 配置文件

说实话,Docker是最近才学的,至于容器的配置文件放在哪个位置还真不清楚,然后在网上查询也没找到结果,但是网上的教程提供了路径,就是: /usr/share/elasticsearch/config/elasticsearch.yml,但实际上还是找不到,后来想了想,可能需要进入容器的运行环境中才行。

于是启动容器,但是不到一分钟,容器就因为Bug没解决,无法一直运行,于是我先把命令先敲一遍,然后进入容器后直接粘贴,看看这配置文件写了啥。

  • 先启动容器。
  • docker start ES01
  • ES01是容器的名称。
  • 进入容器
  • docker exec -it ES01 /bin/bash
  • 查看配置文件信息
  • cat /usr/share/elasticsearch/config/elasticsearch.yml
  • 搞定!原来就写了两个内容,虽然不是很懂。
cluster.name: "docker-cluster"
network.host: 0.0.0.0

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

知道了配置文件的内容,我就可以自定义一份配置信息,然后让容器启动时按照我的配置文件来执行就可以了,下面是我的配置信息。

cluster.name: "docker-cluster"
network.host: 0.0.0.0
node.name: node-1
cluster.initial_master_nodes: ["node-1"]

2.3 成功的启动

启动前先把之前的容器删除,反正留着也用不了。删除命令是 docker rm ES01

这次启动容器,让它带着我自定义的配置文件来启动,启动命令有点长,不过就多了一个配置信息,还是能看懂的。

docker run -v ~/config/elasticsearch/es7140.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300
--name ES01 elasticsearch:7.14.0

其中, ~/config/elasticsearch/es7140.yml是我自定义配置信息的路径。

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

这次算是真正的启动了,浏览器也可以访问了,不过浏览器访问至少要等个30秒,等容器启动之后才能真正访问到。

Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

参考资料

Original: https://www.cnblogs.com/bpf-1024/p/15377228.html
Author: 步平凡
Title: Docker 安装 ElasticSearch 及失败解决方法[Ubuntu 20.04]

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/683807/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 博主-橄榄山软件创始人-其人其事

    在Autodesk工作了7年4个月,那是一段激情。开心的工作经历。14年前当我还是在读研时。从事AutoCAD上的二次开发(硕士课题是搭建一个有限元程序的前处理建模软件), 增加A…

    技术杂谈 2023年5月31日
    084
  • Jenkinsfile Pipeline 使用 SSH 连接

    为了在 Jenkinsfile 的命令中使用 SSH,我们不得不通过一些设置… 前提 首先你需要将用到的 SSH 私钥保存到 Jenkins 的凭据中,这样你会获得一个…

    技术杂谈 2023年7月11日
    060
  • Linux 的基本操作 -权限

    Linux 的基本操作 -权限 权限:文件的属性: d:表示目录-:表示文件 l:连接文件 b:设备文件,提供存储的接口设备 c:设备文件,提供串行的接口设备–键盘,鼠…

    技术杂谈 2023年7月24日
    066
  • 数据仓库与hive

    数据仓库与hive hive—— 数据仓库建模工具之一 一、数据库、数据仓库 1.1 数据库 关系数据库本质上是一个二元关系,说的简单一些,就是一个二维表格,对普通人来说,最简单的…

    技术杂谈 2023年7月11日
    050
  • wasm示例 js canvas 动画示例

    3d迷宫移动:https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/A_basic_ray-caster C:\d…

    技术杂谈 2023年5月31日
    089
  • idea环境下SpringBoot Web应用引入JSP

    环境 开发环境:idea2019.3jkd版本:1.8springboot版本:2.6.2 引入JSP的步骤 2.1 新建工程,引入依赖 这里只是解析jsp,因此只需要引入spri…

    技术杂谈 2023年7月11日
    060
  • 阿里DIN深度兴趣网络

    https://arxiv.org/abs/1706.06978 https://github.com/wzhe06/Ad-papers 一是因为这篇文章的工程性很强。工程性很强的…

    技术杂谈 2023年5月31日
    0102
  • Spring Ioc源码分析系列–Bean实例化过程(一)

    Spring Ioc源码分析系列–Bean实例化过程(一) 前言 上一篇文章Spring Ioc源码分析系列–Ioc容器注册BeanPostProcesso…

    技术杂谈 2023年7月25日
    075
  • Seata 环境搭建

    Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。 https://seata.io/zh-cn/docs/…

    技术杂谈 2023年5月31日
    0100
  • Network Service in Chrome

    John Abd-El-Malek March 2016 Create a Mojo Network Service in Chrome, and start converting…

    技术杂谈 2023年5月31日
    079
  • 超酷的元素周期表

    【原文链接】:https://blog.tecchen.tech ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的…

    技术杂谈 2023年7月11日
    0121
  • DateTimeFormatter.BASIC_ISO_DATE

    DateTimeFormatter (Java Platform SE 8 ) (oracle.com) 作者:习惯沉淀 如果文中有误或对本文有不同的见解,欢迎在评论区留言。 如果…

    技术杂谈 2023年6月1日
    088
  • 初看Spring Security一脸懵逼,看懂直接跪下

    Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架, 提供了完善的 认证机制和方法级的 授权功能。是一款非常优秀的权限管理框架。它的核心是一组过滤器链…

    技术杂谈 2023年6月21日
    073
  • Vim 练级攻略

    以下的文章翻译自《Learn Vim Progressively》,我认为这是给新手最好的VIM的升级教程了,没有列举全部的命令,仅仅是列举了那些最实用的命令。 很不错。 ————…

    技术杂谈 2023年5月31日
    099
  • Java中方法的定义和使用

    方法的定义和使用 注意事项: 1.方法与方法之间是 平级关系 不可以嵌套定义 2.方法的位置 可以在类{}中任意位置 3.方法定义之后 之后被调用 才能被执行 4.return 关…

    技术杂谈 2023年6月21日
    087
  • HBase1.4.6安装搭建及shell命令使用

    HBase1.4.6安装搭建 HBase1.4.6安装搭建 一、前期准备(Hadoop,zookeeper,jdk) 搭建Hbase 1、上传解压 2、配置环境变量 3、修改hba…

    技术杂谈 2023年7月11日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球