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. 鸿蒙HarmonyOS实战-ArkUI组件(Button)

    一.Button Button(按钮)是一种常见的用户界面控件,通常用于触发操作或提交数据.Button 拥有文本标签和一个可点击的区域,用户点击该区域即可触发相应的操作或事件. Button 的主要 ...

  2. #树状数组,欧拉函数#CF594D REQ

    题目 给定 \(n\) 个数,求 \(\varphi(\prod_{i=l}^r{a_i})\) 分析 考虑单个欧拉函数的求法,只需要求出这个数的质因数计算即可. 那么考虑离线,枚举右端点,记录每个质 ...

  3. 深入理解 C++ 右值引用和移动语义:全面解析

    C++11引入了右值引用,它也是C++11最重要的新特性之一.原因在于它解决了C++的一大历史遗留问题,即消除了很多场景下的不必要的额外开销.即使你的代码中并不直接使用右值引用,也可以通过标准库,间接 ...

  4. mysql统计查询和索引练习

    课程数据表course SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table ...

  5. HarmonyOS非线性容器特性及使用场景

      非线性容器实现能快速查找的数据结构,其底层通过hash或者红黑树实现,包括HashMap.HashSet.TreeMap.TreeSet.LightWeightMap.LightWeightSet ...

  6. redis 简单整理——发布与订阅[十四]

    前言 简单介绍一下redis的发布与订阅. 正文 Redis提供了基于"发布/订阅"模式的消息机制,此种模式下,消息发布 者和订阅者不进行直接通信,发布者客户端向指定的频道(cha ...

  7. Har 版本包发布

    新建 Module 注意名字最好是小写命名 oh-package.json5 修改 description 描述信息 在 Index.ets 导出对外暴露的组件 export{ TitleBar } ...

  8. AGC066 题解

    题解:AT_agc066_a [AGC066A] Adjacent Difference 笑点解析:没有必要将总成本最小化. 我们将格子间隔的黑白染色(显然有两种染色方法),对于黑点我们要求它是奇数倍 ...

  9. 对接HiveMetaStore,拥抱开源大数据

    本文分享自华为云社区<对接HiveMetaStore,拥抱开源大数据>,作者:睡觉是大事. 1. 前言 适用版本:9.1.0及以上 在大数据融合分析时代,面对海量的数据以及各种复杂的查询, ...

  10. 【知识点】如何快速开发、部署 Serverless 应用?

    简介: 本文将详细介绍如何开发和部署 Serverless 应用,并通过阿里云函数计算控制台与开发者工具 Serverless Devs 进行应用的初始化.部署:最后分享应用的调试,通过科学发布.可观 ...