广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于docker 搭建Elasticsearch6.2.4(centos)
  • 321
分享到

基于docker 搭建Elasticsearch6.2.4(centos)

dockercentos 2023-01-30 22:01:23 321人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful WEB接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的

elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful WEB接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

 

本文使用的是Centos7.5(CentOS-7-x86_64-Minimal-1804) 系统。

请确保本机有2G的内存。因为elasticsearch会占用1G内存。

 

安装Docker

yum安装docker

yum install -y docker-io

 

需要添加国内镜像源

vim /etc/docker/daemon.JSON

默认内容是{},修改效果如下:

{  "reGIStry-mirrors": ["https://registry.docker-cn.com"]
}

 

重启docker服务

systemctl restart docker

 

安装docker命令补全工具

yum install -y bash-completion

注意:必须要退出终端,重新登录一次才能生效。

 

下载centos系统镜像

docker pull centos

这个镜像就是centos7的

 

下载rpm安装就可以了

Https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

 

使用centos镜像启动一个容器

docker run -it docker.io/centos /bin/bash

进入容器之后,先安装wget和java,并清理rpm包

yum install -y wget java-1.8.0-openjdk && yum clean all

 

下载elasticsearch的rpm包并安装

rpm -ivh elasticsearch-6.2.4.rpm && rm -f elasticsearch-6.2.4.rpm

 

修改配置文件

sed -i '55s/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml 
sed -i '59s/#http.port: 9200/http.port: 9200/g' /etc/elasticsearch/elasticsearch.yml

 

启动elasticsearch服务

runuser -s /bin/bash -l elasticsearch -c "/usr/share/elasticsearch/bin/elasticsearch"

注意:不能使用systemctl命令启动elasticsearch服务,必须要以特权模式运行才行!

比如 docker run -it docker.io/centos privileged=true /bin/bash 

 

Dockerfile

新建一个空目录,编译文件Dockerfile

mkdir /opt/elasticsearchvi /opt/elasticsearch/Dockerfile

内容如下:

复制代码

FROM centos

RUN yum install -y wget java-1.8.0-openjdk && yum clean all && \
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm && \
    rpm -ivh elasticsearch-6.2.4.rpm && rm -f elasticsearch-6.2.4.rpm && \    sed -i '55s/#network.host: 192.168.0.1/network.host: 0.0.0.0/g' /etc/elasticsearch/elasticsearch.yml && \    sed -i '59s/#http.port: 9200/http.port: 9200/g' /etc/elasticsearch/elasticsearch.yml
EXPOSE 9200ENTRYPOINT runuser -s /bin/bash -l elasticsearch -c "/usr/share/elasticsearch/bin/elasticsearch"

复制代码

 

注意:每执行一次RUN,镜像就会增加一层。层数越多,镜像体积越大。

为了避免多次RUN,把相关命令统一到一个RUN中。

 

EXPOSE 9200 表示要暴露的端口号

ENTRYPOINT 表示镜像run起来之后,默认要执行的命令

runuser 指定用户执行命令。

  • -s 指定环境变量

  • -l 指定用户

  • -c 执行的命令 

 

编排镜像

docker build -t elasticsearch /opt/elasticsearch

 

启动容器

docker run -it elasticsearch

默认会直接调用命令 runuser -s /bin/bash -l elasticsearch -c "/usr/share/elasticsearch/bin/elasticsearch"

输出如下:

复制代码

runuser: warning: cannot change directory to /home/elasticsearch: No such file or directory
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[2018-11-07T10:18:54,057][INFO ][o.e.n.node               ] [] initializing ...
[2018-11-07T10:18:54,198][INFO ][o.e.e.NodeEnvironment    ] [qDmU4u_] using [1] data paths, mounts [[/ (rootfs)]], net usable_space [15gb], net total_space [16.9gb], types [rootfs]
[2018-11-07T10:18:54,198][INFO ][o.e.e.NodeEnvironment    ] [qDmU4u_] heap size [1015.6mb], compressed ordinary object pointers [true]
[2018-11-07T10:18:54,202][INFO ][o.e.n.Node               ] node name [qDmU4u_] derived from node ID [qDmU4u_NTNKmpXVV-5vlEQ]; set [node.name] to override
[2018-11-07T10:18:54,202][INFO ][o.e.n.Node               ] version[6.2.4], pid[5], build[ccec39f/2018-04-12T20:37:28.497551Z], OS[linux/3.10.0-862.el7.x86_64/amd64], JVM[oracle Corporation/OpenJDK 64-Bit Server VM/1.8.0_191/25.191-b12]
[2018-11-07T10:18:54,202][INFO ][o.e.n.Node               ] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatinGoccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.Netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch.C8ZXNqCd, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=/var/lib/elasticsearch, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:/var/log/elasticsearch/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/usr/share/elasticsearch, -Des.path.conf=/etc/elasticsearch]
[2018-11-07T10:18:55,827][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [aggs-matrix-stats]
[2018-11-07T10:18:55,827][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [analysis-common]
[2018-11-07T10:18:55,827][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [ingest-common]
[2018-11-07T10:18:55,831][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [lang-expression]
[2018-11-07T10:18:55,831][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [lang-mustache]
[2018-11-07T10:18:55,831][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [lang-painless]
[2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [mapper-extras]
[2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [parent-join]
[2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [percolator]
[2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [rank-eval]
[2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [reindex]
[2018-11-07T10:18:55,832][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [repository-url]
[2018-11-07T10:18:55,833][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [transport-netty4]
[2018-11-07T10:18:55,833][INFO ][o.e.p.PluginsService     ] [qDmU4u_] loaded module [tribe]
[2018-11-07T10:18:55,833][INFO ][o.e.p.PluginsService     ] [qDmU4u_] no plugins loaded
[2018-11-07T10:19:00,949][INFO ][o.e.d.DiscoveryModule    ] [qDmU4u_] using discovery type [zen]
[2018-11-07T10:19:02,075][INFO ][o.e.n.Node               ] initialized
[2018-11-07T10:19:02,075][INFO ][o.e.n.Node               ] [qDmU4u_] starting ...
[2018-11-07T10:19:02,531][INFO ][o.e.t.TransportService   ] [qDmU4u_] publish_address {172.17.0.2:9300}, bound_addresses {[::]:9300}
[2018-11-07T10:19:02,567][INFO ][o.e.b.BootstrapChecks    ] [qDmU4u_] bound or publishing to a non-loopback address, enforcing bootstrap checks
[2018-11-07T10:19:05,811][INFO ][o.e.c.s.MasterService    ] [qDmU4u_] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {qDmU4u_}{qDmU4u_NTNKmpXVV-5vlEQ}{Terj8KYoQvWwHYsUYkNNyA}{172.17.0.2}{172.17.0.2:9300}
[2018-11-07T10:19:05,829][INFO ][o.e.c.s.ClusterApplierService] [qDmU4u_] new_master {qDmU4u_}{qDmU4u_NTNKmpXVV-5vlEQ}{Terj8KYoQvWwHYsUYkNNyA}{172.17.0.2}{172.17.0.2:9300}, reason: apply cluster state (from master [master {qDmU4u_}{qDmU4u_NTNKmpXVV-5vlEQ}{Terj8KYoQvWwHYsUYkNNyA}{172.17.0.2}{172.17.0.2:9300} committed version [1] source [zen-disco-elected-as-master ([0] nodes joined)]])
[2018-11-07T10:19:05,887][INFO ][o.e.h.n.Netty4HttpServerTransport] [qDmU4u_] publish_address {172.17.0.2:9200}, bound_addresses {[::]:9200}
[2018-11-07T10:19:05,887][INFO ][o.e.n.Node               ] [qDmU4u_] started
[2018-11-07T10:19:05,897][INFO ][o.e.g.GatewayService     ] [qDmU4u_] recovered [0] indices into cluster_state

复制代码

 

它会一值hold住,监听9200端口

 

但是一般,我们需要将本机和容器做一个端口映射,要这样启动容器

docker run -p 9200:9200 -d -it el

-p 表示端口映射,hostPort : containerPort,左边是本机的,右边是容器的

-d 表示后台运行

 

注意:这个2个参数要写在前面,不能写在后面

 

等待10秒,查看端口状态

复制代码

[root@localhost el]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      813/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1190/master         
tcp        0      0 192.168.91.133:22       192.168.91.1:56367      ESTABLISHED 11374/sshd: root@pt 
tcp6       0      0 :::9200                 :::*                    LISTEN      17942/docker-proxy- tcp6       0      0 :::22                   :::*                    LISTEN      813/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1190/master

复制代码

通过以上信息,就可以看到端口起来了

 

访问url

http://192.168.91.133:9200/

页面输出:

复制代码

{  "name" : "-sawdKe",  "cluster_name" : "elasticsearch",  "cluster_uuid" : "_7kUiLEyQBSnLQSOGxijtw",  "version" : {    "number" : "6.2.4",    "build_hash" : "ccec39f",    "build_date" : "2018-04-12T20:37:28.497551Z",    "build_snapshot" : false,    "lucene_version" : "7.2.1",    "minimum_wire_compatibility_version" : "5.6.0",    "minimum_index_compatibility_version" : "5.0.0"
  },  "tagline" : "You Know, for Search"}

复制代码

 

备注:

如果不使用容器安装elasticsearch,直接使用以下命令,就可以启动elasticsearch

systemctl daemon-reload
systemctl start elasticsearch.service
systemctl enable elasticsearch.service

不要天真的以为,它就是以root用户运行的

看/usr/lib/systemd/system/elasticsearch 文件,它里面定义了运行用户是elasticsearch

所以实际运行用户还是elasticsearch


--结束END--

本文标题: 基于docker 搭建Elasticsearch6.2.4(centos)

本文链接: https://www.lsjlt.com/news/179180.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于docker 搭建Elasticsearch6.2.4(centos)
    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的...
    99+
    2023-01-30
    docker centos
  • 基于docker 搭建Prometheus+Grafana
    Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且...
    99+
    2023-01-30
    docker Prometheus Grafana
  • 基于Docker搭建iServer集群
    目录前言一、安装Docker二、下载 iServer 镜像三、启动iServer四、发布服务五、搭建集群前言 Linux容器虚拟技术(LXC,Linux Container)是一种轻...
    99+
    2022-11-13
  • 基于Docker如何搭建WordPress
    小编给大家分享一下基于Docker如何搭建WordPress,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先下载mysql镜像和wordpress镜像1...
    99+
    2023-06-07
  • 基于docker如何搭建caffe环境
    小编给大家分享一下基于docker如何搭建caffe环境,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!需求:构建一个独立的容器,里面安装了caffe 的所有依赖,...
    99+
    2023-06-07
  • 基于CentOS 6.5操作系统搭建MongoDB服务
    基于CentOS 6.5操作系统搭建MongoDB服务        Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(...
    99+
    2022-10-18
  • 如何搭建基于Docker的MySQL主从复制
    下文主要给大家带来如何搭建基于Docker的MySQL主从复制,希望这些内容能够带给大家实际用处,这也是我编辑如何搭建基于Docker的MySQL主从复制这篇文章的主要目的。好了,废话不多说,大家直接看下文...
    99+
    2022-10-18
  • 基于Docker搭建ELK 日志系统的方法
    背景需求:     业务发展越来越庞大,服务器越来越多 各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志 开发人员...
    99+
    2022-11-12
  • 基于Docker搭建Redis主从集群的实现
    目录1、拉取 Redis 镜像2、创建 6 个 Redis 容器3、启动 Redis 容器4、组建 Redis 集群5、关于Redis集群搭建最近陆陆续续有不少园友加我好友咨询 re...
    99+
    2022-11-12
  • 基于Docker的Mysql主备搭建的实现步骤
    目录前期规划:配置过程:Docker mysql主从配置。我们会在一台centos的虚拟机上,配置mysql主备 前期规划: docker mysql版本 mysql:5.7dock...
    99+
    2022-11-13
  • centos怎么搭建部署docker环境
    这篇文章主要介绍“centos怎么搭建部署docker环境”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“centos怎么搭建部署docker环境”文章能帮助大家解决问题。1、Docker的存在解决的...
    99+
    2023-07-02
  • docker搭建基于prometheus的监控体系步骤实现
    目录1.启动prometheus容器服务2.启动成功后,公网访问该9090端口进入普罗米修斯主页3.部署mysqld-exporer监控mysql数据库(想监控什么就部署对应的exp...
    99+
    2022-11-13
  • 基于docker环境下如何搭建redis主从集群
    基于docker环境下如何搭建redis主从集群,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1   前言笔者给大家介绍基于docker环境下搭建Red...
    99+
    2023-06-04
  • 怎么搭建一个基于Docker的Tomcat运行环境
    这篇文章主要介绍“怎么搭建一个基于Docker的Tomcat运行环境”,在日常操作中,相信很多人在怎么搭建一个基于Docker的Tomcat运行环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么搭建一个基...
    99+
    2023-06-04
  • 基于CentOS8系统使用Docker搭建Gitlab的详细教程
    目录一、安装Docker二、安装GitLab三、初始化GitLab一、安装Docker #1、卸载旧版本 yum remove docker \ docker-clien...
    99+
    2022-11-12
  • 分布式任务调度系统xxl-job搭建(基于docker)
    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。更多介绍,请访问官网:http://www.xuxueli.com/xxl-job/#/&n...
    99+
    2023-01-31
    分布式 系统 xxl
  • docker基于Alpine Linux构建镜像
    Alpine Linux,一个只有5M的Docker镜像。是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,...
    99+
    2023-01-30
    镜像 docker Alpine
  • 基于Docker实现Redis主从+哨兵搭建的示例实践
    目录1.拉取镜像2. 编写主 从配置文件2.1 创建/home/redis/redis_conf目录:2.2 编写主配置文件2.3 编写从配置文件2.4  编写从配置文件3...
    99+
    2022-11-13
  • 基于RPM包的LAMP搭建
    1.     配置概要:a)      172.16.20.10主机运行httpd+php服务(...
    99+
    2022-10-18
  • MySQL基于GTID主从搭建
    目录一、用xtarbackup备份数据库1.1 优势1.2 安装1.3 使用1.3.1 普通备份1.3.2 tar备份1.3.3 xbstream备份1.3.4 恢复二、基于GTID做数据同步2.1 GTID的概念2.2...
    99+
    2022-08-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作