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)

大家都在看

  • JAVA设计模式-建造者模式

    JAVA设计模式-建造者模式 介绍 建造者模式是通过一步一步的步骤构建一个包含多个部件的对象,每个不同的对象都是具有相同的构建过程。适用于复杂对象的构建,用户不需要知道具体的构建细…

    Linux 2023年6月6日
    092
  • spring redis session 使用入门[原]

    两份properties配置, 仅端口不同 配置文件添加redis 链接 application-9001.properties application-9002.properti…

    Linux 2023年5月28日
    093
  • VR(虚拟现实)开发资源汇总

    Daydream Gear VR Algorithm ATW Bluetooth Blog Latency Tools Touch Unity Qualcomm EGL Origi…

    Linux 2023年6月7日
    088
  • Consider defining a bean of type `xxx` in your configuration问题解决

    在使用SpringBoot装配mybatis时出现了异常 *************************** APPLICATION FAILED TO START *****…

    Linux 2023年6月13日
    0111
  • shell之文件路径截取

    最近写脚本,需要对脚本中函数传递的路径参数进行截取,发现了以下比较好用的方法,记录下: file=/dir1/dir2/dir3/my.file.txt 我们可以用${ }分别替换…

    Linux 2023年5月28日
    085
  • wordpress固定链接+宝塔nginx配置伪静态访问URL

    一、站点设置 打开站点设置,选择伪静态,选择wordpress 二、wordpress设置 打开wordpress后台,选择 设置 —》固定链接 选择一个你喜欢的格式点…

    Linux 2023年6月14日
    099
  • gitlab部署

    Gitlab部署 Gitlab部署 Gitlab的基本使用 新建项目 使用命令行的方式管理项目 上传文件 新建分支 拉取文件 //配置yum源 [root@localhost ~]…

    Linux 2023年6月13日
    0104
  • Jmeter 使用Json提取请求数据-2

    在接口测试中有一个这样的场景:业务接口需要用到登录token;下个接口需要用到前个接口返回值作为参数,该怎么实现? 首先先看下登录、业务接口,本文用的jmeter版本为5.4.1 …

    Linux 2023年6月8日
    0100
  • 如何配置VLAN

    一、vlan的概念与作用 首先,在学习如何配置vlan时我们先要了解一下为什么要配置vlan?vlan在平常的工作中有什么作用? vlan:虚拟的划分网段 即虚拟网络,在平常的工作…

    Linux 2023年6月6日
    0146
  • 订阅消息组件由 redis 改为 rabbitmq

    刚开始测试 dapr 时为了图省事,使用了 pubsub.redis,现在准备上生产环境,改用支持消息持久化的 pubsub.rabbitmq。 之前使用的 pubsub.redi…

    Linux 2023年5月28日
    081
  • Linux基础学习(四)

    自建yum仓库,分别为网络源和本地源 1.本地源 点击查看代码 root@ct7:~# yum install autofs root@ct7:~# systemctl enabl…

    Linux 2023年6月8日
    0126
  • Redis分布式锁实战

    背景 目前开发过程中,按照公司规范,需要依赖框架中的缓存组件。不得不说,做组件的大牛对CRUD操作的封装,连接池、缓存路由、缓存安全性的管控都处理的无可挑剔。但是有一个小问题,该组…

    Linux 2023年5月28日
    092
  • How to Operate SharePoint User Alerts with PowerShell

    When you migrate list or site, the user alerts in the site will not be migrated together w…

    Linux 2023年5月28日
    0140
  • 批量新建域用

    前几个章节我们讲到Windows Server 2016-图形化新建域用户(一),本章节我们简单讲解下如何通过命令批量创建域用户,以便高效完成日常工作中实际批量创建用户需求,内容涉…

    Linux 2023年6月13日
    090
  • 用powershell实现,管理github自动化

    用powershell实现,管理github自动化 搜索关键字如下:PowerShellForGitHub powershell 传教士 原创文章。始于 2021-02-04 允许…

    Linux 2023年6月14日
    082
  • 023.Ubuntu常见个性化配置

    root登录设置 ubuntu默认关闭了root账户,可根据实际情况开启或关闭root登录。 ubuntu@localhost:~$ sudo apt install openss…

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