我尝试使用所提供的java8基映像(如这里 )创建自定义码头映像。
以下是我所做的尝试
FROM javaFROM java:latestFROM java:8FROM 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)这会导致问题,因为我的应用程序是编译成使用Java1.8的。应该使用什么java映像来实际获取容器上的java8?
发布于 2016-05-29 11:35:12
这些应该有效,而且为我工作。你确定你正在构建它并运行新的映像吗?
$ 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查看您的映像,您也应该会看到这些env,并且还可以比较用于Java映像的层,以尝试查看正在发生的事情。
发布于 2016-05-29 11:33:55
列出的所有映像都应该运行java 8。在更新Dockerfile之后,请确保正在构建映像并在新容器中运行它。
echo "FROM java:8" > Dockerfile
docker build -t my-java:latest .
docker run --rm my-java:latest java -versionhttps://stackoverflow.com/questions/37509232
复制相似问题