我使用官方弹性图片中的自定义图片:
docker.elastic.co/elasticsearch/elasticsearch:5.6.4
我有内存问题,但是在这张图片中,我没有Java工具来监控内存。
是否可以使用此图像,但基于"更大的"有更多调试工具的图像,比如busybox?
答案 0 :(得分:0)
标准方法是通过创建自定义dockerfile并安装所需的工具来扩展此图像。
FROM elasticsearch:5.6.5
RUN <install tools you need>
弹性搜索图像基于openjdk:8-jre
,它不包含jdk附带的开发工具。
如果您比较openjdk-jdk和openjdk-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
来重建整个弹性搜索图像,从而实现“强力”。