任何人都可以让我知道什么是我的docker文件的问题?
我需要一个运行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我能够成功地build立图像,我已经推到我的帐户hub.docker.com
但是当我运行尝试使用以下命令运行容器,该容器未运行。
我打断了我的头,分析了超过两个小时的根本原因,我无法find问题。
我知道我错过了一些愚蠢的东西,任何人都可以看看,并指出我正在做的错误?
提前致谢
您的Dockerfile缺less一个ENTRYPOINT或CMD指令。 他们定义启动容器时运行的命令。
参考CMD
参考进入点
您没有定义入口点或CMD。
一些有用的链接:
- 在Dockerfile中,CMD和ENTRYPOINT有什么区别?
- https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/
- https://docs.docker.com/engine/reference/builder/#known-issues-run