2016-05-29 52 views
1

我試圖用描述的here所描述的使用提供的java8基本映像創建自定義泊塢窗鏡像。Java8基本映像安裝了java7 docker

以下是我已經

  • 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?

回答

0

您列出的所有圖像都應該運行java 8.確保在更新Dockerfile後生成映像並在新容器中運行它。

echo "FROM java:8" > Dockerfile 
docker build -t my-java:latest . 
docker run --rm my-java:latest java -version 
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查看你的形象,你應該看到這些ENV瓦爾爲好,並且還可以比較使用的層到Java圖像(s)去嘗試看看發生了什麼。