首页 > 解决方案 > 本地构建的 Docker 映像失败,而来自 docker hub 的相同映像工作

问题描述

我正在运行 Windows 10,使用 docker for windows。

这是基线:

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 图像时,它可以工作。

为什么以及如何解决它?

标签: docker

解决方案


弄清楚了。当本地构建的容器正在运行时,它实际上会因此错误而崩溃

无法识别的 VM 选项“UseParNewGC”,错误:无法创建 Java 虚拟机

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

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

我猜 nshou 上的图像已缓存并且太旧以至于它使用的是旧版本的 jre?我不确定为什么当最新default-jre-headless版本与 repo 的 kibana3 标签存在此问题时基线图像会起作用。

幸好我的问题解决了。


推荐阅读