问题场景

官方源下载的镜像不能直接使用,涵盖了包括X-pack商业插件,没有nfs工具等诸多问题,除此之外还有很多未发现的问题,决定自己手动制作一个es镜像。

制作方法

  1. 下载官方tar包(这样的话是不含x-pack商业化插件的)
  2. 解压到本地,修改配置文件,具体修改如下
  • config目录下elasticsearch.yml,将其中的cluster.name设置为统一的集群名,这样就可以通过相同的集群名发现,node.nam修改为改节点的名字,例如node1,node2等等,network.host一般修改为0.0.0.0,discovery.zen.ping.unicast.hosts修改为集群内所有节点的IP,如[“10.200.177.101:9300”, “10.200.177.102:9300”,“100.200.177.103:9300”]
  • config目录下jvm.options,修改jvm内存大小,比如外部分配es的内存为16G,这里只能分配8G,因为除了jvm别的部分也需要占用内存,添加配置信息-Xms8g -Xmx8g
  1. 编写Dockerfile文件
FROM centos:7

ADD jdk-8u261-linux-x64.tar.gz /usr/local
ADD elasticsearch-6.1.3.tar.gz /home/

RUN mv /usr/local/jdk1.8.0_261 /usr/local/jdk
RUN yum install -y nfs-utils

ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

RUN groupadd -r es && useradd -r -g es es

RUN chmod -R 777 /home/elasticsearch-6.1.3/
USER es
WORKDIR /home/elasticsearch-6.1.3/bin
ENTRYPOINT [ "./elasticsearch" ]

EXPOSE 9200
EXPOSE 9300
  1. docker build -t xxxx .构建脚本

打包结构

-------------当前目录
Dockerfile
elasticsearch-6.1.3.tar.gz
jdk-8u261-linux-x64.tar.gz

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐