Java 8 基础镜像有 java 7 安装 docker

标签 java docker dockerfile

我尝试使用提供的 java8 基础镜像创建自定义 docker 镜像,如所述 here .

以下是我所做的尝试

  • 来自 java
  • 来自 java:latest
  • 来自 java:8
  • 来自 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?

最佳答案

那些应该有用,并且对我有用。您确定正在构建它并运行新镜像吗?

$ 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检查查看有关本地镜像的信息。如果您检查 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检查来查看您的图像,您也应该看到这些环境变量,并且还可以将用于Java图像的层进行比较,以尝试看看发生了什么。

关于Java 8 基础镜像有 java 7 安装 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37509232/

相关文章:

java - 从上次中断的地方继续?

amazon-web-services - AWSEBCLI没有这样的文件或目录

python - docker ,pylibmc,内存缓存

Docker Container Command 找不到 shell 脚本

java - 无法使用tomcat验证CSRF token 的发布请求

java - 如何更改 RadioButton 标签的位置?

docker - "correct"在docker中管理数据库模式的方法

c++ - 从 rootfs 创建一个 docker 容器

java - 如何在Spring中创建一个创建单例的工厂

windows - 无法将 Windows docker 镜像推送到 Artifactory