使用Docker创建Elasticsearch服务
最近需要做的几个功能都是基于Elasticsearch,但又不想污染系统环境,所以就花了些时间研究下如何使用Docker创建Elastcisearch服务。
首先先分别了解下Docker和Elasticssearch。
Docker是什么?Docker是一个开源工具,能将一个WEB应用封装在一个轻量级,便携且独立的容器里,然后可以运行在几乎任何服务环境下。
Docker的容器能使应用跑在任何服务器上并且表现一致。一个开发者在笔记本上建立的一个容器,能跑在很多环境下,如:测试环境,生产环境,虚拟机上,VPS,OpenStack集群,公用的电脑等等
Docker的一般使用在以下几点:
• 自动化打包和部署应用
• 创造一个轻量级的,私人的 PAAS 环境
• 自动化测试和连续的 整合/部署
• 部署WEB应用,数据库和后端服务
所以,Docker是一个系统级兼容的容器,它采用Linux Container技术构建一个虚拟环境,用户可以在这个环境下安装各种应用来提供服务,并且这个环境可以随时创建或销毁,不会影响宿主环境
Elasticsearch是什么?Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:
• 分布式的实时文件存储,每个字段都被索引并可被搜索
• 分布式的实时分析搜索引擎
• 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
总之,ES是一个牛逼的搜索存储引擎
安装DockerMac上安装Docker很简单,基本跟着官网的引导就可以顺利安装了,完成后确保Docker已启动,如下图
Elasticsearch官方在Docker Hub上已经有提供镜像,如果没有额外需求,执行下面这个命令就可以直接使用Elasticsearch官方提供的镜像:
docker run -d -p 9200:9200 --name="es" elasticsearch:2.3.5
但我还想额外装一个Elasticsearch的插件,方便调适,所以就自己做了一个镜像, Dockerfile
FROM elasticsearch:2.3.5 RUN /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head EXPOSE 9200
进入Dockerfile所在的文件夹,执行以下命令:
docker build --tag=es_ezio:2.3.5 .
然后执行
docker ps
就能看到刚才创建的镜像了
上一步我们只是制作了一个Docker镜像,还没有创建Docker容器。关于Docker中镜像和容器的关系,可以类比为操作系统中的程序和进程,或者面向对象语言中的Class和Instance。我们必须从镜像创建出容器才能运行我们的服务(也就是Elasticsearch服务)。
第一次创建Docker容器,执行以下命令:
docker run -d -p 9200:9200 --name="es_ezio" es_ezio:2.3.5
Elasticsearch的默认端口是9200,我们把宿主环境9200映射到Docker容器中的9200端口,这样我们就可以直接访问宿主环境的9200端口就可以访问到Docker容器中的Elasticsearch服务了,同时我们把这个容器命名为es_ezio。
如果一切顺利,访问 http://127.0.0.1:9200/_plugin/head/
这样,我们就完成了用Docker提供Elasticsearch服务,而不污染宿主机环境了,这样还有一个好处,如果想同时启动多个不同版本的Elastcsearch或者其他服务,Docker也是一个理想的解决方案。
总结Docker主要是面向运维部署,但其实对开发人员来说也是一个不错的playground,后续我的个人服务会尽量都采用Docker的方式部署。
Elastic search是一个功能强大的搜索存储引擎,特别是它强大的全文搜索能力,要好好研究下。
Docker操作Elasticsearch和Kibana增加用户密码安全验证 昨天公司说现场生产的机器ES和Kibana没有增加密码等安全验证,我想这不是最基础的嘛,怎么连密码都没有,赶紧围绕着生产环境自己写了一个方案,马上让现场人员进行部署,具体的操作流程如下:
袋鼠云 袋鼠云是企业数据化整体解决方案提供商,是数据中台架构倡导者、引领者,通过打通数据供应链,构建企业数据化驱动引擎,加速企业数据化进程,让数据成为企业核心竞争力。
相关文章
- 【重识云原生】第六章容器6.1.5节——Docker核心技术Namespace
- Docker安装elasticsearch、kibana和logstash,实现ELK[通俗易懂]
- docker 下安装常用 image
- 大数据ELK Stack(二):Elasticsearch 集群之docker部署
- 1.Docker学习之基础知识
- Linux上安装docker
- 群晖NAS的docker中安装frp服务端
- docker离线安装及配置tab补全_Docker安装
- docker安装redis注意事项
- AX9000 Docker - Cloudreve 搭建并打洞
- Docker服务的启动命令(systemctl start docker)
- Docker服务的停止命令(systemctl stop docker)
- Docker服务的重启服务命令(systemctl restart docker)
- Docker服务的拉取镜像命令(docker pull 镜像名称)
- Docker部署MinIO
- Linux下Docker安装指南(linux下docker安装)
- 服务基于 Docker 的 Redis 服务部署方案(dockerredis)
- 使用 Docker 和 Elasticsearch 构建一个全文搜索应用程序
- docker-阿里云docker镜像仓库
- docker用Docker构建Redis集群的步骤(redis集群使用)