我有一个EC2实例(Amazon Linux),该实例运行的Java版本很旧(旧版软件)。
app_settings {
"DOCKER_REGISTRY_SERVER_URL" = "myregistry.azurecr.io"
"DOCKER_REGISTRY_SERVER_USERNAME" = "@Microsoft.KeyVault(SecretUri="https://myapp-kv-az.vault.azure.net/secrets/my-secret-kv-az/redacted)"
"DOCKER_REGISTRY_SERVER_PASSWORD" = "@Microsoft.KeyVault(SecretUri=https://myapp-kv-az.vault.azure.net/secrets/my-pass-az-pass/redacted)"
}
当我对该实例的启动卷进行快照,然后从快照创建一个新卷时,将其作为另一个实例的启动卷附加,启动新实例,然后检查Java版本,这就是我看到的:
$ java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (amzn-2.6.4.0.65.amzn1-x86_64 u95-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
我不明白为什么实例启动时Java版本会更改。我已验证,只有在实例中启动卷时才会发生这种情况。首先,将其作为辅助卷附加到正在运行的实例,会显示正确的(旧)版本。
作为辅助驱动器:
$ java -version
java version "1.7.0_211"
OpenJDK Runtime Environment (amzn-2.6.17.1.79.amzn1-x86_64 u211-b02)
OpenJDK 64-Bit Server VM (build 24.211-b02, mixed mode)
作为实例的启动卷启动后:
$ ls -l /media/new_vol/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
-rwxr-xr-x 1 root root 5456 Feb 2 2016 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
有人看过吗?任何想法为什么会这样?旧实例和新实例都运行相同类型的实例代和类。