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/611354/

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

(0)

大家都在看

  • 数据结构 二叉树

    cpp;gutter:true;</p> <h1>include</h1> <p>using namespace std;</…

    Linux 2023年6月13日
    085
  • tomcat上部署jenkins

    tomcat上部署jenkins tomcat上部署jenkins 部署tomcat 部署jenkins Jenkins创建流水线任务 主机名称 IP地址 需要的应用服务 工具包 …

    Linux 2023年6月6日
    0119
  • 微信小程序大型系统架构中应用Redis缓存要点

    在大型分布式系统架构中,必须选择适合的缓存技术以应对高并发,实现系统相应的高性能,酷客多小程序经过慎重选型,选择了采用基于腾讯云服务的Redis弹性缓存技术,结合Redis官方推荐…

    Linux 2023年5月28日
    0105
  • MySQL-创建表

    如何在指定数据库中创建表 我们先来了解一下在数据库中创建表的规则: CREATE TABLE 表名 ( 字段名,数据类型, 字段名,数据类型, ….. ) 例如: 添加…

    Linux 2023年6月8日
    0127
  • Xftp 远程工具的使用与jdk 安装(Linux最小安装版)

    Xftp 的安装使用 下载链接:Xftp7 – Dominic 的蓝奏云分享 安装和注册步骤可参考 Xshell:Linux 最小安装与 Xshell 远程工具的使用 …

    Linux 2023年6月8日
    0126
  • Hadoop Shell命令

    http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html Original: https://www.cnblogs.com/…

    Linux 2023年5月28日
    0101
  • Markdown基本使用

    元素 Markdown 语法 [标题(Heading)] [粗体(Bold)] [斜体(Italic)] [引用块(Blockquote)] [有序列表(Ordered List)…

    Linux 2023年6月13日
    095
  • redis限流的3种实现方式

    Redis限流的实现方式有3种,分别是:1、基于Redis的setnx的操作,给指定的key设置了过期实践;2、基于Redis的数据结构zset,将请求打造成一个zset数组;3、…

    Linux 2023年5月28日
    0102
  • Linux ARM中断控制器注册(4)【转】

    本文以S5PV210芯片为参照,S5PV210的中断控制器采用了ARM VIC(Vectored Interrupt Controller,PL192 ,ARM PrimeCell…

    Linux 2023年6月8日
    092
  • 一名研究生的自我修养

    一、如何学习 研究生阶段是学习效率最高的阶段。第一是因为动机纯粹,以前上学这么多年大部分的学习动机只是为了成绩,这个学习动机其实会很大限制同学的主动学习意愿,往往是被动学习,为了成…

    Linux 2023年6月14日
    086
  • 卡尔曼滤波(Kalman filter)(不完全介绍)

    1. Kalman filter基本介绍 卡尔曼滤波(Kalman filter)是一种高效的自回归滤波器,它能在存在诸多不确定性情况的组合信息中估计动态系统的状态,是一种强大的、…

    Linux 2023年6月14日
    0116
  • Rabbitmq安装与部署

    安装包otp_src_22.3.tar.gz,下载到部署服务器tar -zxvf解压 mv otp_src_22.3 ./erlang变更文件夹名字 可能需要安装的依赖包 yum …

    Linux 2023年5月27日
    0103
  • Windows下配置Redis多实例

    方法一:新建目录创建Redis实例 1.将你的redis安装目录复制一份,命名为Redis6380 2.用命令行CMD工具进入到该目录下 3.执行创建redis6380服务的命令:…

    Linux 2023年5月28日
    083
  • 使用二手 gopro 做行车记录仪

    背景 自打开了博客以后,一直在写技术说明文,今天打算写点程序以外的东西换换味口。前段时间在某鱼上以 300 元的价格入手了一套完整的 gopro3+ 运动摄像头,带一张 32G S…

    Linux 2023年6月6日
    0269
  • java执行shell脚本怎么进行交互处理

    感谢我吧,什么都不说,直接上代码: package utils; import java.io.*; public class ShellUtils { public static…

    Linux 2023年5月28日
    096
  • apparmor 源码分析

    这里不对apparmor做介绍,记录一下源码分析过程。 static int __init apparmor_init(void) -> security_add_hooks…

    Linux 2023年6月13日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球