制作ElasticSearch的docker镜像(含nfs)
问题场景官方源下载的镜像不能直接使用,涵盖了包括X-pack商业插件,没有nfs工具等诸多问题,除此之外还有很多未发现的问题,决定自己手动制作一个es镜像。制作方法下载官方tar包(这样的话是不含x-pack商业化插件的)解压到本地,修改配置文件,具体修改如下config目录下elasticsearch.yml,将其中的cluster.name设置为统一的集群名,这样就可以通过相同的集群名发现,n
·
问题场景
官方源下载的镜像不能直接使用,涵盖了包括X-pack商业插件,没有nfs工具等诸多问题,除此之外还有很多未发现的问题,决定自己手动制作一个es镜像。
制作方法
- 下载官方tar包(这样的话是不含x-pack商业化插件的)
- 解压到本地,修改配置文件,具体修改如下
- 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
- 编写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
docker build -t xxxx .
构建脚本
打包结构
-------------当前目录
Dockerfile
elasticsearch-6.1.3.tar.gz
jdk-8u261-linux-x64.tar.gz
更多推荐
已为社区贡献6条内容
所有评论(0)