搞了2天终于搞好了

更新: 
  2017/2/15: 更改elasticsearch.yml中绑定ip, 可开启集群效果
//: supervisord.conf 加入 autostart=true, 开启景象自动启动
  2017/2/16: 更改elasticsearch.yml中ip嗅探, 真正实现热插拔集群
bug: 指定的物理机挂在目录仍然存在问题

需要: 一个能在linux下正常运行的 elasticsearch-2.4.0 版本, 直接copy进镜像, 安装好head, bigdesk, ik分词  器等, 在elasticsearch中有讲: http://www.cnblogs.com/wenbronk/p/6390462.html

Dockerfile

############################################
# version : wenbronk/jdk8u121/elasticsearch2.
# desc : 当前版本安装的escluster 2.4.0
############################################ FROM wenbronk/jdk8u121
MAINTAINER wenbronk "wenbronk@163.com" # 设置环境变量,所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive # 添加 supervisord 的配置文件,并复制配置文件到对应目录下面。(supervisord.conf文件和Dockerfile文件在同一路径)
COPY supervisord.conf /etc/supervisor/supervisord.conf RUN echo "export LC_ALL=C" # 设置 ES 的环境变量,若有其他的环境变量需要设置,也可以在这里添加。
ENV ES_HOME /var/tmp/elasticsearch-2.4.
ENV PATH $PATH:$PATH:$ES_HOME/bin # 创建elasticsearch的数据目录, 同时将权限给admin用户
RUN mkdir /escluster # 复制elasticsearch-2.4.0(本地能正常运行的es, 安装好ik插件) 到镜像中 /var/tmp
COPY elasticsearch-2.4. /var/tmp/elasticsearch-2.4.0 # 修改文件夹权限
# RUN chown -R admin:admin /var/tmp/elasticsearch-2.4.
# RUN chown -R admin:admin /escluster # 挂载/software/elasticsearch-2.4./config和/escluster目录
VOLUME ["/var/tmp/elasticsearch-2.4.0/config"]
VOLUME ["/escluster"] # 容器需要开放ES的9200和9300端口
EXPOSE
EXPOSE # 执行supervisord来同时执行多个命令,使用 supervisord 的可执行路径启动服务。
CMD ["/usr/bin/supervisord"]

supervisord.conf

[supervisord]
nodaemon=true [program:sshd]
command=/usr/sbin/sshd -D [program:elasticsearch]
command=/bin/bash -c "exec ${ES_HOME}/bin/elasticsearch -DFOREGROUND"
autostart=true

elasticsearch.yml 文件位于 ${ES_HOME}/config下

# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please see the documentation for further information on configuration options:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: wenbronk-escluster
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
# node.name: wenbronk-esnode01
#
# Add custom attributes to the node:
#
# node.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
# path.data: /escluster/data
path.data: /escluster/data
# #
# # Path to log files:
# #
path.logs: /escluster/logs
#
# Path to log files:
#
# path.logs: /escluster/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
# bootstrap.memory_lock: true
#
# Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory
# available on the system and that the owner of the process is allowed to use this limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
http.port:
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.zen.ping.unicast.hosts: ["192.168.1.110", "[::1]"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / + ):
#
# discovery.zen.minimum_master_nodes:
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
# gateway.recover_after_nodes:
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
#
# ---------------------------------- Various -----------------------------------
#
# Disable starting multiple nodes on a single system:
#
# node.max_local_storage_nodes:
#
# Require explicit names when deleting indices:
#
# action.destructive_requires_name: true index.analysis.analyzer.ik.type: ik

    

创建镜像:

docker build -t wenbronk/jdk8u121/escluster .

注: 因为es使用非root账户, docker默认使用root账户, 开启一直不成功, supervisord还没来及学, 所以暂时使用root开启es

vim ./bin/elasticsearch

插入

-Des.insecure.allow.root="true"

启动

docker run -d -p : -p : -p : -v /docker/escluster01:/esculster wenbronk/jdk8u121/escluster
docker run -d -p : -p : -p : -v /docker/escluster01:/esculster wenbronk/jdk8u121/escluster
docker run -d -p : -p : -p : -v /docker/escluster01:/esculster wenbronk/jdk8u121/escluster

可通过ip查看

http://www.wenbronk.com:9200/_plugin/head/

或者链接进容器查看

>dockers exec -it CONTAINER_ID /bin/bash
>container>/var/tmp/es/bin/elasticsearch -d

docker 创建elasticsearch集群镜像的更多相关文章

  1. Docker部署Elasticsearch集群

    http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...

  2. Elasticsearch使用系列-Docker搭建Elasticsearch集群

    Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...

  3. 基于docker搭建elasticsearch集群

    es集群的搭建 - 基于单机搭建elasticsearch集群见官网 https://www.elastic.co/guide/en/elasticsearch/reference/current/d ...

  4. Centos8 Docker部署ElasticSearch集群

    ELK部署 部署ElasticSearch集群 1.拉取镜像及批量生成配置文件 # 拉取镜像 [root@VM-24-9-centos ~]# docker pull elasticsearch:7. ...

  5. 利用 docker 部署 elasticsearch 集群(单节点多实例)

    文章目录 1.环境介绍 2.拉取 `elasticserach` 镜像 3.创建 `elasticsearch` 数据目录 4.创建 `elasticsearch` 配置文件 5.配置JVM线程数量限 ...

  6. docker创建ceph集群

    背景 Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon.ceph/radosgw.ceph/mon.ceph/osd等:另外一种是最新 ...

  7. 使用Docker搭建Elasticsearch集群环境

    本篇文章首发于头条号单机如何搭建Elasticsearch集群?使用容器技术快速构建集群环境,欢迎关注头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_te ...

  8. docker创建Redis集群

    开始工作: yum install wegt ##安装下载工具 yum install net-tools ##安装网络工具 yum install tree ##安装tree命令(方便查看集群配置文 ...

  9. 基于docker创建Cassandra集群

    一.概述 简介 Cassandra是一个开源分布式NoSQL数据库系统. 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynam ...

随机推荐

  1. PHP环境的搭建及与nginx的集成

    1.  去php官网下载最新稳定版(最新其实是7.0,为了兼容性,使用5.6.16) wget http://cn2.php.net/get/php-5.6.16.tar.gz/from/this/m ...

  2. 【WinRT】多语言化应用程序名称

    在Windows Phone 8的时候,要对应用程序在列表中显示的名称和锁定到开始屏幕的磁贴的名称进行多语言化是十分困难的,需要使用C++建立一个多语言资源库.但是,在WinRT中,这变得简单多了,无 ...

  3. flume 整合kafka

    背景:系统的数据量越来越大,日志不能再简单的文件的保存,如此日志将会越来越大,也不方便查找与分析,综合考虑下使用了flume来收集日志,收集日志后向kafka传递消息,下面给出具体的配置 # The ...

  4. Linux - 修改文件编码

    enca -L zh_CN -x UTF- file

  5. Alwayson--辅助副本状态

    1. 同步中(SYNCHRONIZING),主副本和辅助副本之间存在数据差异,并正在进行同步: 2. 已同步(SYNCHRONIZED),主副本和辅助副本之间不存在数据差异,无需要同步的日志: 3. ...

  6. azkaban作业参数使用介绍

    azkaban作业参数使用介绍 参数传递是调度系统工作流运行时非常重要的一部分,工作流的执行,单个作业的执行,多个工作流之间的依赖执行,历史任务重算,都涉及参数传递和同步. azkaban的工作流中的 ...

  7. AOP编程的学习总结

    前几天听到一个同事说起AOP 然后就想学习下应用到项目中去,自己也是在网上找了很多的资料,之后发现 网上的大部分资料的内容几乎都是如出一撤,于是自己就整理了一下再加上这几天的学习总结到的知识写到这篇文 ...

  8. Python3------反射详解

    反射: 根据字符串动态的判断,调用,添加/修改,删除类或类的实例化对象中的方法或属性 反射共有四种方法hasattr(),getattr(),setattr(),delattr() 1.通过字符串来判 ...

  9. .net core获取appsettings CustomSettings

    private static string GetCustomSettings(string key) { var config = new ConfigurationBuilder() .AddIn ...

  10. jquery移动端一个按钮两个事件

    当一个按钮已经有一个事件,如点击,弹窗显示,若还要加个事件,可以用touchstart 如: var videoCover = $("#videoCover");//视频封面 $( ...