使用FROM Busybox运行Elasticsearch docker容器

我正在使用官方弹性图像的自定义图像:

docker.elastic.co/elasticsearch/elasticsearch:5.6.4

我有一个内存问题,所以在这个图像中,我没有Java工具来监视内存。

是否可以使用这个图像,但基于“更大”的图像与更多的工具来debugging,像busybox?

标准的方法是通过创build一个自定义的dockerfile并安装你需要的工具来扩展这个图像。

FROM elasticsearch:5.6.5 RUN <install tools you need> 

弹性search图像基于openjdk:8-jre ,它不包含jdk自带的开发工具。 如果您比较openjdk-jdk和openjdk-jre的dockerfiles,则可以看到Java安装在/docker-java-home

因此,您可以使用docker 多阶段构build将jdk复制到弹性search图像上。

 FROM openjdk:8-jdk as jdk FROM elasticsearch:5.6.5 COPY --from=jdk /docker-java-home /docker-java-home 

这将取代elasticsearch图像的jre安装与jdk版本给你的Java开发工具。 这可能是最简单的方法。

最后,可以通过在elasticsearch docker文件中用FROM openjdk:8-jdkreplaceFROM openjdk:8-jre来重build整个弹性search图像。