本地构建的Docker映像失败,而Docker Hub的同一映像工作

时间:2019-06-22 21:28:36

标签: docker

我正在使用Windows的docker运行Windows 10。

这是基线:

docker pull nshou/elasticsearch-kibana:kibana3
docker image list
docker run -d -p 9200:9200 -p 5601:5601 {imageName}:kibana3
curl localhost:9200/_stats

良好的反应。

所以我从https://bitbucket.org/nshou/elasticsearch-kibana/src/kibana3/Dockerfile复制了Dockerfile

FROM ubuntu:latest    
RUN apt-get update -q  
RUN apt-get install -yq wget default-jre-headless mini-httpd

ENV ES_VERSION 1.7.4    
RUN cd /tmp && \
    wget -nv https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-${ES_VERSION}.tar.gz && \
    tar zxf elasticsearch-${ES_VERSION}.tar.gz && \
    rm -f elasticsearch-${ES_VERSION}.tar.gz && \
    mv /tmp/elasticsearch-${ES_VERSION} /elasticsearch

ENV KIBANA_VERSION 3.1.3   
RUN cd /tmp && \
    wget -nv https://download.elastic.co/kibana/kibana/kibana-${KIBANA_VERSION}.tar.gz && \
    tar zxf kibana-${KIBANA_VERSION}.tar.gz && \
    rm -f kibana-${KIBANA_VERSION}.tar.gz && \
    mv /tmp/kibana-${KIBANA_VERSION} /kibana

CMD /elasticsearch/bin/elasticsearch -Des.http.cors.enabled=true -Des.logger.level=OFF & mini_httpd -d /kibana -h `hostname` -r -D -p 5601

EXPOSE 9200 5601

我用

构建它
docker build -t test/test .

图像构建成功。

docker image list
docker run -d -p 9200:9200 -p 5601:5601 {imageName}:latest
curl localhost:9200/_stats

没有回应。不是404,但服务器响应为无响应。

问题似乎是当我自己构建映像时,它不起作用。当我从集线器中拉出相同的dockerfile映像时,它就起作用了。

为什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

弄清楚了。 当本地构建的容器运行时,其实际崩溃并显示此错误

Unrecognized VM option 'UseParNewGC' , Error: Could not create the Java Virtual Machine

default-jre-headless使用的Java版本与此旧版本的Elasticsearch不兼容。

切换到openjdk-8-jre-headless解决了此问题。

我猜想nshou上的图像已缓存并且太旧了,以至于它正在使用旧版本的jre?我不确定最新的default-jre-headless在回购的kibana3标签上有此问题时,为什么基准图像会起作用。

非常感谢我的问题得到解决。