elasticsearch 6.2.4和elasticsearch-head环境搭建 使用docker-compose方式
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方式的更多相关文章
- centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课
centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...
- ElasticSearch(一)概念介绍及环境搭建
一.什么是ElasticSearch: Elasticsearch (ES)是一个基于Lucene构建的开源.分布式.RESTful 接口全文搜索引擎.Elasticsearch 还是一个分布式文档数 ...
- Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载
1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...
- .Net Core On Liunx 环境搭建之 Docker 容器和Nginx
上一篇文章安装了Mysql8数据库,接下开始安装Docker和Nginx 我的思路是这样的,用Docker当运行环境的虚拟机,Nginx当Http服务器用来做反向代理. 服务器环境:阿里云服务器,操作 ...
- Python环境搭建后,多种方式的使用进行程序的执行。
Python环境搭建后,可以使用多种方式进行程序的执行. 第一种: 进入CMD命令提示符 输入python 进入python环境(可以使用Ctrl+C退出) 输入print("hello&q ...
- SSM环境搭建(接口编程方式)
一直用ssm在开发项目,之前都是直接copy别人的项目,今天趁着项目刚刚交付,自己搭建一下ssm环境,做个记录 一.创建项目.引入jar包,因为版本不一样,就不贴出这部分的内容了.个人平时的习惯是,先 ...
- MySQL 环境搭建之解压方式安装
一 .MySQL服务 安装 1.下载: 地址: http://dev.mysql.com/downloads/mysql/ 2.安装: 将下载的mysql-5.7.16-winx64压缩包解压后的整 ...
- 持续集成-jenkins介绍与环境搭建
什么是持续集成? 转自:https://blog.csdn.net/tanshizhen119/article/details/80328523 持续集成,俗称CI, 大师Martin Fowler对 ...
- Docker+Jenkins_自动化持续集成环境搭建
前一篇文章里已经在内网环境搭建好docker 详见:https://www.cnblogs.com/befer/p/9107503.html, 现在接着搭建一个Docker+Jenkins的集成环境 ...
- IoT设备程序开发及编译环境搭建初体验
引言 Mirai事件一经曝出,立即引领了一轮研究IoT设备的热潮.目前,对Mirai的报告大多只是在对其功能实现上的介绍,却很少提及如何实现IoT设备程序开发的测试环境.本文在对Mirai的源码研究的 ...
随机推荐
- Python爬取腾讯视频电影名称和链接(一)
1 import requests 2 import json 3 from bs4 import BeautifulSoup #网页解析获取数据 4 import sys 5 import re 6 ...
- Web、Android等程序开发中src引入外部文件和资源的方法总结
方法一:使用相对于当前文件(源文件)的相对路径 使用 ../ 对于这个例子来说 ../ 把路径带到了项目根目录的下一级目录 1 <script src="../static/js/wo ...
- 安卓AlertDialog对话面板的使用---Android开发
1 AlertDialog.Builder builder=new AlertDialog.Builder(this); 2 builder.setTitle("历史记录").se ...
- 探索Avalonia:C#跨平台UI框架的力量
随着跨平台应用的需求不断增长,开发人员需要一种能够在不同操作系统上运行的用户界面(UI)框架. Avalonia 是一种引人注目的选择.在本文中,我们将深入了解 Avalonia 是什么,它与 WPF ...
- npm 直接安装 GitHub/GitLab 仓库代码及 npm link 本地调试
一.npm 直接安装 GitHub/GitLab 仓库代码 语法 npm install <git remote url> 示例 命令: npm i git@github.com:maze ...
- C#_面试题2
1 :维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种 ...
- HDD与你相约深圳,一起探讨创新开发与运营增长
12月14日,HUAWEI Developer Day(以下简称HDD)将在深圳与广大开发者见面.本次HDD共设有主论坛.两个分论坛及两个闭门会议,期待各位开发者前来参加. 精彩预告 01·主论坛 在 ...
- Linux编译静态库、动态库
一.Linux上编译静态库 # 1.编译成.o文件 gcc -c a.c b.c // 2.编译成静态库 ar -r liba.a a.o b.o // 3.链接成可执行文件 gcc main.c - ...
- climits 与 符号常量
climits 在老式中是 limits.h 一.引入 #include <climits> 或者 #include <limits.h> 二.符号常量 符号常量 表示 CH ...
- HarmonyOS:使用MindSpore Lite引擎进行模型推理
场景介绍 MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型推理的功能,目前已经在图像分类.目标识别.人脸识别.文字识别等应用中广泛使用. 本文介绍使用MindSpore ...