任何人都可以让我知道我的docker文件中的问题是什么?

时间:2017-11-03 12:37:14

标签: docker docker-compose dockerfile docker-machine

我需要一个运行java的容器,我希望公开端口8090。

这是我为实现这个目的而编写的Docker文件。

FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive

ENV VERSION 8
ENV UPDATE 152
ENV BUILD 16
ENV SIG aa0333dd3019491ca4f6ddbe78cdb6d0

ENV JAVA_HOME /usr/lib/jvm/java-${VERSION}-oracle

# install jre
RUN apt-get update -qq && \
  apt-get upgrade -qqy --no-install-recommends && \
  apt-get install curl unzip bzip2 -qqy && \
  mkdir -p "${JAVA_HOME}" && \
        curl --silent --location --insecure --junk-session-cookies --retry 3 \
          --header "Cookie: oraclelicense=accept-securebackup-cookie;" \
          http://download.oracle.com/otn-pub/java/jdk/"${VERSION}"u"${UPDATE}"-b"${BUILD}"/"${SIG}"/jre-"${VERSION}"u"${UPDATE}"-linux-x64.tar.gz \
        | tar -xzC "${JAVA_HOME}" --strip-components=1 && \
  apt-get remove --purge --auto-remove -y curl unzip bzip2 && \
  apt-get autoclean && apt-get --purge -y autoremove && \
  rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN update-alternatives --install "/usr/bin/java" "java" "${JAVA_HOME}/bin/java" 1 && \
        update-alternatives --install "/usr/bin/javaws" "javaws" "${JAVA_HOME}/bin/javaws" 1 && \
        update-alternatives --set java "${JAVA_HOME}/bin/java" && \
        update-alternatives --set javaws "${JAVA_HOME}/bin/javaws"

EXPOSE 8090

使用Dockerfile我能够成功构建图像,并已将其推送至hub.docker.com中的帐户

但是当我运行时尝试使用以下命令运行容器时,容器未运行。

我分析了根本原因超过2小时我无法找到问题。

我知道我错过了一些愚蠢的事情,任何人都可以看看并指出我正在做的错误吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

您的Dockerfile缺少ENTRYPOINT或CMD指令。它们定义了启动容器时运行的命令。

Reference CMD

Reference ENTRYPOINT

答案 1 :(得分:1)