Docker部署ElasticSearch和ElasticSearch-Head的实现

本篇主要讲解使用Docker如何部署ElasticSearch:6.8.4 版本,讲解了从Docker拉取到最终运行ElasticSearch 以及 安装 ElasticSearch-Head 用来管理ElasticSearch相关信息的一个小工具,本博客系统首页的搜索正是使用了ElasticSearch来实现的,由于ElasticSearch 更新太快 以至于SpringData-ElasticSearch都跟不上 Es的更新 我也是一开始下载8.x的版本 导致SpringData-ElasticSearch 报错 最终我选择了6.8.4 在此记录一下

1.Docker部署ElasticSearch:6.8.4版本

1.1 拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.4

1.2 运行容器

ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es。

docker run -d --name es -p 9200:9200 -p 9300:9300
-e "discovery.type=single-node"
-e ES_JAVA_OPTS="-Xms=256m -Xms=256m"
docker.elastic.co/elasticsearch/elasticsearch:6.8.4

说明:

-e discovery.type=single-node :表示单节点启动

-e ES_JAVA_OPTS="-Xms=256m -Xms=256m" :表示设置es启动的内存大小,这个真的要设置,不然后时候会内存不够,比如我自己的辣鸡服务器!

1.3 内存不足问题

centos下载完elasticsearch并修改完配置后运行docker命令:

发现没有启动成功,去除命令的-d后打印错误如下

Java HotSpot(TM) 64-Bit Server VM warning: INFO:
os::commit_memory(0x0000000085330000, 2060255232, 0) failed;
error='Cannot allocate memory' (errno=12)

经过一番查找发现这是由于elasticsearch6.0默认分配jvm空间大小为2g,内存不足以分配导致。

解决方法就是修改jvm空间分配
运行命令:

find /var/lib/docker/overlay/ -name jvm.options

查找jvm.options文件,找到后进入使用vi命令打开jvm.options如下:

将

-Xms2g
-Xmx2g
修改为
-Xms512m
-Xmx512m 

保存退出即可。再次运行创建运行elasticsearch命令,成功启动。

2.Docker部署ElasticSearch-Heard

2.1 拉取镜像

docker pull mobz/elasticsearch-head:5

2.2 运行容器

docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

2.3 启动容器

docker start elasticsearch-head

2.4 打开浏览器: http://IP:9100

发现连接不上,是因为有跨域问题,因为前后端分离开发的所以需要设置一下es

2.5 进入刚刚启动的 es 容器,容器name = es

docker exec -it es /bin/bash

2.6 修改elasticsearch.yml文件

vi config/elasticsearch.yml

添加

http.cors.enabled: true
http.cors.allow-origin: "*"

其实就是SpringBoot的yml文件 添加跨域支持

2.7 退出容器 并重启

exit
docker restart es

2.8 访问http://localhost:9100

总结:

本篇只是简单的讲解了如何用Docker安装ElasticSearch 并且会遇到的坑,包括内存不足,或者版本太高等问题,以及ElasticSearch-Heard的安装和跨域的配置 ,下一篇将讲解ElasticSearch如何安装中文分词器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Docker下安装ElasticSearch和Kibana的示例代码

    1.前言 现在elasticsearch是比较火的,很多公司都在用,所以如果说还不知道es可能就会被人鄙视了.所以这里我就下决心来学习es,我比较钟爱于docker所有也就使用了docker来安装es,这里会详细介绍下安装的细节以及需要注意的地方.关于docker的安装在这里我就不去说明了,可以自行安装一下就可以了,很简单的,我保证你真的可能会爱上它.这里我使用的电脑是MacBook Pro 如果是linux的话其实基本相同,如果是Windows的话,可能就不太一样了,这里我也没有实际操作过,感

  • 详解Docker下使用Elasticsearch可视化Kibana

    Kibana 作为Elasticsearch优秀的可视化的开源分析工具,我们下面使用Docker结合进行最简单的上手演示. docker 使用教程 在这里我们使用Linux系统作为演示 系统:Fedora28 内核: uname -r 4.16.2-300.fc28.x86_64 docker版本 docker --version Docker version 18.03.0-ce, build 0520e24 安装docker-compose sudo curl -L https://gith

  • 使用docker快速部署Elasticsearch集群的方法

    本文将使用Docker容器(使用docker-compose编排)快速部署Elasticsearch 集群,可用于开发环境(单机多实例)或生产环境部署. 注意,6.x版本已经不能通过 -Epath.config 参数去指定配置文件的加载位置,文档说明: For the archive distributions, the config directory location defaults to $ES_HOME/config. The location of the >config direc

  • docker 安装ElasticSearch 6.x的教程详解

    首先是拉去镜像(或者直接创建容器自然会拉去) docker pull elasticSearch:6.5.4 创建容器 docker run --name elasticsearch --net host -e "discovery.type=single-node" -e "network.host=IP地址" elasticsearch:6.5.4 启动 docker start elasticsearch 查看日志 docker logs elasticsea

  • Docker 简单部署 ElasticSearch的实现方法

    一.ElasticSearch是什么? Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单. 不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: 分布式的实时文件存储,每个字段都被索 引并可被搜索分布式的实时分析搜索引擎 可以扩展到上百台服务器,处理PB级结构化或非结构化数据 二.Docker 部署 ElasticS

  • Docker部署ElasticSearch和ElasticSearch-Head的实现

    本篇主要讲解使用Docker如何部署ElasticSearch:6.8.4 版本,讲解了从Docker拉取到最终运行ElasticSearch 以及 安装 ElasticSearch-Head 用来管理ElasticSearch相关信息的一个小工具,本博客系统首页的搜索正是使用了ElasticSearch来实现的,由于ElasticSearch 更新太快 以至于SpringData-ElasticSearch都跟不上 Es的更新 我也是一开始下载8.x的版本 导致SpringData-Elast

  • docker 部署 Elasticsearch kibana及ik分词器详解

    es安装 docker pull elasticsearch:7.4.0 # -d : 后台运行 # -p : 指定宿主机与docker启动容器的端口映射 # --name : 为 elasticsearch 容器起个别名 # -e : 指定为单节点集群模式 # docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.4.0

  • docker镜像访问本地elasticsearch端口操作

    使用docker stack部署的镜像服务,进入镜像之后,理论上,应该可以通过下面的指令访问本地的elasticsearch服务 curl 本机ip/9200 但是却提示拒绝访问. 后来本机使用上述指令查看之后发现,本机也是拒绝访问. 之后发现,9200端口的elasticsearch服务,是通过打洞的方式连接的远程服务器上的elasticsearch服务,只能通过下面指令访问端口 curl 127.0.0.1:9200 如果想要通过本机ip访问9200端口,则需要在打洞指令的后面加上 -g.

  • Docker部署springboot项目实例解析

    这篇文章主要介绍了docker部署springboot项目实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.

  • Docker部署ELK7.3.0日志收集服务最佳实践

    写在最前面 本文仅包含ELK7.3.0部署! 部署环境: 系统 CentOS 7 Docker Docker version 19.03.5 CPU 2核 内存 2.5G 磁盘 30G(推荐设置,磁盘不足可能会引发es报错) Filebeat v7.3.0,单节点 ElasticSearch v7.3.0,两份片 Kibana v7.3.0,单节点 Logstash v7.3.1,单节点 ELK分布式集群部署方案 linux中elasticsearch用户拥有的内存权限太小,至少需要262144

  • 使用docker部署spring boot并接入skywalking的方法

    一.概述 最近在研究skywalking,打算使用k8s部署 skywalking 并将 pod 中的应用接入 skywalking 进行服务链路追踪.这篇文章先不介绍 skywalking 在k8s中的部署和使用,而是先介绍如何使用手动和docker的方式使用 skywalking.在整个实践过程中查阅了大量文档,遇到了各种问题,这里将我自己的实践过程记录下来,希望对有同样需求的小伙伴提供一些帮助. 1.skywalking 简介 SkyWalking是一款广受欢迎的国产APM(Applica

  • Docker部署Mysql,.Net6,Sqlserver等容器

    Centos8安装Docker 1.更新一下yum [root@VM-24-9-centos ~]# yum -y update 2.安装containerd.io # centos8默认使用podman代替docker,所以需要containerd.io [root@VM-24-9-centos ~]# yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2

  • 基于docker部署skywalking实现全链路监控功能

    目录 一.概述 简介 功能 架构图 二.快速部署 环境说明 下载镜像 安装elasticsearch 修改系统参数 启动elasticsearch 安装oap 安装ui 三.spring-boot实例部署 项目地址 制作jar包 启动jar包 访问ui 访问demo接口 仪表盘 拓扑图 追踪 告警 指标 一.概述 简介 skywalking是一个开放源码的,用于收集.分析,聚合,可视化来自于不同服务和本地基础服务的数据的可观察的平台,skywalking提供了一个简单的方法来让你对你的分布式系统

  • 使用Docker部署 spring-boot maven应用的方法

    本文介绍了使用Docker部署 spring-boot maven应用,分享给大家,具体如下: 部署过程分为以下几个步骤: 创建一个简单的spring-boot应用 打包运行应用 容器化应用 在pom文件中添加docker支持 创建docker镜像 运行docker容器 查看正在运行的容器 启动/关闭/重启/删除docker容器 1. 创建一个简单的spring-boot应用 在IntelliJ IDEA中File->New->Project: 然后点Next->Finish. 2. 打

  • Spring Boot与Docker部署详解

    本文介绍了Spring Boot与Docker部署,分享给大家,希望对大家有帮助 开启Docker远程访问 首先需要开启docker远程访问功能,以便可以进行远程操作. CentOS 6 修改/etc/default/docker文件,重启后生效(service docker restart). DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375"  CentOS 7 打开/usr/lib/systemd/system

随机推荐