使用FROM Busybox运行Elasticsearch docker容器

时间:2017-12-14 08:08:04

标签: docker elasticsearch busybox

我使用官方弹性图片中的自定义图片:

docker.elastic.co/elasticsearch/elasticsearch:5.6.4

我有内存问题,但是在这张图片中,我没有Java工具来监控内存。

是否可以使用此图像,但基于"更大的"有更多调试工具的图像,比如busybox?

1 个答案:

答案 0 :(得分:0)

标准方法是通过创建自定义dockerfile并安装所需的工具来扩展此图像。

FROM elasticsearch:5.6.5
RUN <install tools you need>

弹性搜索图像基于openjdk:8-jre,它不包含jdk附带的开发工具。 如果您比较openjdk-jdkopenjdk-jre的dockerfiles,您会发现Java已安装在/docker-java-home

因此,您可以使用docker multi-stage build将jdk复制到弹性搜索图像上。

FROM openjdk:8-jdk as jdk

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

这将使用jdk版本替换elasticsearch图像中的jre安装,为您提供java开发工具。这可能是最简单的方法。

最后,您可以通过将FROM openjdk:8-jre替换为elasticsearch docker file内的FROM openjdk:8-jdk来重建整个弹性搜索图像,从而实现“强力”。