Java8基础映像已安装java7 docker

时间:2016-05-29 11:18:23

标签: java docker dockerfile

我尝试使用提供的java {8}基础图像创建自定义泊坞窗图像。

以下是我的尝试

  • FROM java
  • FROM java:latest
  • FROM java:8
  • FROM java:8-jdk

创建图像后,我检查了安装的Java版本(java -version),所有版本都返回

java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-1~deb8u1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

这会导致问题,因为我的应用程序已编译为使用Java 1.8。应该用什么java图像来实际获取容器上的java8?

2 个答案:

答案 0 :(得分:1)

那些应该有效,并为我工作。你确定要构建它并运行新图像吗?

$ echo "FROM java:latest" > Dockerfile
$ docker build -t test .
...
$ docker run --rm test java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-1~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

您可以使用docker inspect查看有关本地图片的信息。如果您检查其中一个Java映像,那么您应该在环境中使用Java版本:

$ docker inspect java:latest
...
            "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64",
            "JAVA_VERSION=8u91",
            "JAVA_DEBIAN_VERSION=8u91-b14-1~bpo8+1",
...

如果使用docker inspect查看图像,您也应该看到这些环境变量,还可以比较用于Java图像的图层,以尝试查看正在发生的事情。

答案 1 :(得分:0)

您列出的所有图片都应该运行java 8.确保在更新Dockerfile后构建映像并在新容器中运行它。

echo "FROM java:8" > Dockerfile
docker build -t my-java:latest .
docker run --rm my-java:latest java -version