elasticsearch 6.2.4和elasticsearch-head测试环境搭建 使用docker-compose方式

一 背景说明

对于新手来说搭建一个elasticsearch的测试环境稍微费力,而且没必须要去下载那么多安装包,比如java node npm等,所以我决定做成docker-compose方式的启动,并且集成ik分词器,方便快捷,一键搞定。

二 环境需求

你电脑需要安装docker和docker-compose

三 使用步骤

1 目录结构

.
├── docker-compose-elastic.yml
└── elasticsearch.yml

elasticsearch.yml

先编写elasticsearch的配置文件,后续是需要挂载到docker容器中的

elasticsearch.yml的内容如下:

network.bind_host: 0.0.0.0
cluster.name: elastic-cluster
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: true
discovery.type: single-node
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: false

docker-compose-elastic.yml

docker-compose-elastic.yml 这里docker-compose需要的配置文件

elasticsearch.yml的内容如下:

version: '2'
services:
elastic:
image: bachue/elasticsearch-ik:6.2.4
container_name: elastic
environment:
- TZ='Asia/Shanghai'
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
volumes:
- ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
elasticsearch-head:
image: wallbase/elasticsearch-head:6-alpine
container_name: elasticsearch-head
environment:
TZ: 'Asia/Shanghai'
ports:
- '9100:9100'

docker-compose配置说明

bachue/elasticsearch-ik:6.2.4 表示是带有ik分词的,不需要额外自己安装,
volumes 配置项主要是把本地文件挂载到容器中,包含配置文件和数据目录,data是数据目录,如果你只是测试,也可以不需要,但是你下次启动数据就丢失了。
wallbase/elasticsearch-head:6-alpine 从5.0之后head插件可以独立启动,我重新打包一个支持6.2.x版本的docker镜像上传的hub.docker.com中的。

四 启动

启动elasticsearch和elasticsearch-head,参数-d表示后台启动,当然你需要交互式启动可以把-d去掉,elasticsearch端口是9200,head插件的访问端口是9100
haima@haima-PC:/usr/local/docker/elasticsearch6.2.4$ docker-compose -f docker-compose-elastic.yml up -d
Creating elasticsearch-head ... done
Creating elastic ... done
haima@haima-PC:/usr/local/docker/elasticsearch6.2.4$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d2cb0233af1 bachue/elasticsearch-ik:6.2.4 "/usr/local/bin/dock…" About a minute ago Exited (1) 53 seconds ago elastic
6b437ba795b3 wallbase/elasticsearch-head:6-alpine "/bin/sh -c 'node_mo…" About a minute ago Up About a minute 0.0.0.0:9100->9100/tcp elasticsearch-head

如上,es报错

查看日志

haima@haima-PC:/usr/local/docker/elasticsearch6.2.4$ docker logs 5b4f181a5cfc
[2021-07-22T23:18:48,414][INFO ][o.e.n.Node ] [] initializing ...
[2021-07-22T23:18:48,438][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Failed to create node environment
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.2.4.jar:6.2.4]
Caused by: java.lang.IllegalStateException: Failed to create node environment
at org.elasticsearch.node.Node.<init>(Node.java:267) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.node.Node.<init>(Node.java:246) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.4.jar:6.2.4]
... 6 more
Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) ~[?:?]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[?:?]
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[?:?]
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) ~[?:?]
at java.nio.file.Files.createDirectory(Files.java:674) ~[?:1.8.0_161]
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) ~[?:1.8.0_161]
at java.nio.file.Files.createDirectories(Files.java:767) ~[?:1.8.0_161]
at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:204) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.node.Node.<init>(Node.java:264) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.node.Node.<init>(Node.java:246) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:323) ~[elasticsearch-6.2.4.jar:6.2.4]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.2.4.jar:6.2.4]
... 6 more
haima@haima-PC:/usr/local/docker/elasticsearch6.2.4$ ll
总用量 20
drwxrwxrwx 3 haima staff 4096 7月 23 07:18 .
drwxrwsrwx 9 root staff 4096 7月 23 06:49 ..
drwxr-xr-x 2 root root 4096 7月 23 07:18 data
-rwxrwxrwx 1 haima staff 645 7月 23 06:58 docker-compose.yml
-rwxrwxrwx 1 haima staff 225 7月 23 06:51 elasticsearch.yml

从上面可以看挂载的data目录没有权限

所以要给一下权限

root@haima-PC:/usr/local/docker/elasticsearch6.2.4# docker-compose down #移除之前的容器
Stopping elasticsearch-head ... done
Removing elasticsearch-head ... done
Removing elastic ... done
Removing network elasticsearch624_default haima@haima-PC:/usr/local/docker/elasticsearch6.2.4$ su root #切换root账号
密码: root@haima-PC:/usr/local/docker/elasticsearch6.2.4# chmod -R 777 data/ #给data目录权限
root@haima-PC:/usr/local/docker/elasticsearch6.2.4# ll
总用量 20
drwxrwxrwx 3 haima staff 4096 7月 23 07:20 .
drwxrwsrwx 9 root staff 4096 7月 23 06:49 ..
drwxrwxrwx 2 root root 4096 7月 23 07:20 data
-rwxrwxrwx 1 haima staff 645 7月 23 06:58 docker-compose.yml
-rwxrwxrwx 1 haima staff 225 7月 23 06:51 elasticsearch.yml root@haima-PC:/usr/local/docker/elasticsearch6.2.4# docker-compose up -d #启动容器
Creating network "elasticsearch624_default" with the default driver
Creating elastic ... done
Creating elasticsearch-head ... done root@haima-PC:/usr/local/docker/elasticsearch6.2.4# docker ps -a #查看结果,启动成功
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
010f6ccf0419 wallbase/elasticsearch-head:6-alpine "/bin/sh -c 'node_mo…" 5 seconds ago Up 3 seconds 0.0.0.0:9100->9100/tcp elasticsearch-head
2e29d2f5899d bachue/elasticsearch-ik:6.2.4 "/usr/local/bin/dock…" 5 seconds ago Up 2 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elastic

访问浏览器 http://localhost:9100/

安装linux 的 json格式化包

apt-get -y install jq

haima@haima-PC:/usr/local/docker/elasticsearch6.2.4$ curl "127.0.0.1:9200" | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 437 100 437 0 0 2784 0 --:--:-- --:--:-- --:--:-- 2801
{
"name": "oOs3tNG",
"cluster_name": "elastic-cluster",
"cluster_uuid": "ssHHbx0pSFKbDZ00apHwAQ",
"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"
}

浏览器里打开

http://localhost:9100/

填入elaticsearch的地址连接:

http://localhost:9200/

效果:

参考文章:

https://blog.csdn.net/WK313753744/article/details/81316744 #docker安装参考文章

https://blog.csdn.net/s1078229131/article/details/90763811 #报错解决参考文章

https://blog.csdn.net/slsunxia/article/details/107609996

elasticsearch 6.2.4和elasticsearch-head环境搭建 使用docker-compose方式的更多相关文章

  1. centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课

    centos LAMP第一部分-环境搭建  Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...

  2. ElasticSearch(一)概念介绍及环境搭建

    一.什么是ElasticSearch: Elasticsearch (ES)是一个基于Lucene构建的开源.分布式.RESTful 接口全文搜索引擎.Elasticsearch 还是一个分布式文档数 ...

  3. Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载

    1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...

  4. .Net Core On Liunx 环境搭建之 Docker 容器和Nginx

    上一篇文章安装了Mysql8数据库,接下开始安装Docker和Nginx 我的思路是这样的,用Docker当运行环境的虚拟机,Nginx当Http服务器用来做反向代理. 服务器环境:阿里云服务器,操作 ...

  5. Python环境搭建后,多种方式的使用进行程序的执行。

    Python环境搭建后,可以使用多种方式进行程序的执行. 第一种: 进入CMD命令提示符 输入python 进入python环境(可以使用Ctrl+C退出) 输入print("hello&q ...

  6. SSM环境搭建(接口编程方式)

    一直用ssm在开发项目,之前都是直接copy别人的项目,今天趁着项目刚刚交付,自己搭建一下ssm环境,做个记录 一.创建项目.引入jar包,因为版本不一样,就不贴出这部分的内容了.个人平时的习惯是,先 ...

  7. MySQL 环境搭建之解压方式安装

    一 .MySQL服务 安装 1.下载:  地址: http://dev.mysql.com/downloads/mysql/ 2.安装: 将下载的mysql-5.7.16-winx64压缩包解压后的整 ...

  8. 持续集成-jenkins介绍与环境搭建

    什么是持续集成? 转自:https://blog.csdn.net/tanshizhen119/article/details/80328523 持续集成,俗称CI, 大师Martin Fowler对 ...

  9. Docker+Jenkins_自动化持续集成环境搭建

    前一篇文章里已经在内网环境搭建好docker 详见:https://www.cnblogs.com/befer/p/9107503.html, 现在接着搭建一个Docker+Jenkins的集成环境 ...

  10. IoT设备程序开发及编译环境搭建初体验

    引言 Mirai事件一经曝出,立即引领了一轮研究IoT设备的热潮.目前,对Mirai的报告大多只是在对其功能实现上的介绍,却很少提及如何实现IoT设备程序开发的测试环境.本文在对Mirai的源码研究的 ...

随机推荐

  1. #线段树,欧拉函数#CF1114F Please, another Queries on Array?

    题目 给一个长度为\(n\)的数组\(a\),\(q\)次询问 支持区间乘\(x\)以及求\(\varphi(\prod_{i=l}^ra_i)\) \(n\leq 4*10^5,q\leq 2*10 ...

  2. #容斥,搜索,线性筛#CF83D Numbers

    洛谷 CF83D 分析 题意就是\(\sum_{i=l}^r[k|i]*[mn[\frac{i}{k}]\geq k]\) 首先线性筛每个数的最小质因数,如果\(\frac{r}{k}\)较小直接暴力 ...

  3. 深入理解HashMap和LinkedHashMap的区别

    目录 简介 LinkedHashMap详解 插入 访问 removeEldestEntry 总结 深入理解HashMap和LinkedHashMap的区别 简介 我们知道HashMap的变量顺序是不可 ...

  4. OpenHarmony设备截屏的5种方式

      本文转载自<OpenHarmony设备截屏的5种方式 >,作者westinyang 目录 ● 方式1:系统控制中心 ● 方式2:OHScrcpy投屏工具 `推荐` ● 方式3:DevE ...

  5. Go 编程语言详解:用途、特性、与 Python 和 C++ 的比较

    什么是Go? Go是一个跨平台.开源的编程语言 Go可用于创建高性能应用程序 Go是一种快速.静态类型.编译型语言,感觉上像动态类型.解释型语言 Go由Robert Griesemer.Rob Pik ...

  6. 美团一面:说说synchronized的实现原理?问麻了。。。。

    引言 在现代软件开发领域,多线程并发编程已经成为提高系统性能.提升用户体验的重要手段.然而,多线程环境下的数据同步与资源共享问题也随之而来,处理不当可能导致数据不一致.死锁等各种并发问题.为此,Jav ...

  7. CentOS 6.5 LAMP分主机平台的搭建及测试

    CentOS 6.5 LAMP分主机平台的搭建及测试 看似非常之完备,转来抽空测试学习 原文地址:http://www.it165.net/os/html/201403/7595.html 前言   ...

  8. linux 性能自我学习 ———— 软中断 [五]

    前言 linux 性能的自我学习. 正文 什么是软中断呢? 举一个网络的例子. linux 将中断处理过程分为两个阶段: 上半部用来快速处理中断,他在中断禁止模式下运行,注意是处理跟硬件紧密相关或时间 ...

  9. 嘉楠k210 多线程 点亮流水灯

    from Maix import GPIO from fpioa_manager import fm import _thread import time fm.register(24, fm.fpi ...

  10. Kafka 线上性能调优

    Kafka 线上性能调优是一项综合工程,不仅仅是 Kafka 本身,还应该从硬件(存储.网络.CPU)以及操作系统方面来整体考量,首先我们要有一套生产部署方案,基于这套方案再进行调优,这样就有了可靠的 ...