使用docker安装java 8的最佳方法是什么?

我有一个dockerfile,从下面一行开始

FROM java:8

我以为这应该从docker容器registry中拉出图像,并安装。 没有?

当我在我的容器中运行java命令时,我得到以下错误

 ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 

使用docker安装java 8(openjdk版本)的最简单和最好的方法是什么?

更新:

 RUN apt-get install -y --no-install-recommends software-properties-common RUN add-apt-repository -y ppa:openjdk-r/ppa RUN apt-get update RUN apt-get install -y openjdk-8-jdk RUN apt-get install -y openjdk-8-jre RUN update-alternatives --config java RUN update-alternatives --config javac 

也许你错过了一些东西。 8标签或8-jdk工作正常:

 $ docker run -ti java:8-jdk root@ea4ae4cf642e:/# echo $JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 

您也可以通过查看Dockerfile来validation它是否确实定义了JAVA_HOME 。 例如,请参阅java:8 Dockerfile

另外,Dockerfile最简单的forms当然会评估为相同的结果。 即:

 FROM java:8-jdk CMD ["/bin/bash"] 

并按以下方式build设:

 $ docker build -t myjava . 

然后,执行它:

 $ docker run -ti myjava:latest bash root@3c35f7d2d94a:/# echo $JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64