背景關系:需要提升運行 logstash 影像的 Java 版本。我希望碰撞 logstash 影像版本會提供所需的 Java 版本碰撞(期望的結果是碰撞到 Java 11.0.12 或更高版本),但我什至不知道如何檢查正在運行的 Java 版本。
目前正在使用 docker 鏡像docker.elastic.co/logstash/logstash:7.14.2,但是如何查看 java 版本呢?
在https://github.com/elastic/logstash/issues/11907之后,我嘗試了這個:
docker run --rm -it docker.elastic.co/logstash/logstash:7.14.2 java -version,但這是結果:
/usr/local/bin/docker-entrypoint: line 14: exec: java: not found
但是,運行docker run --rm -it docker.elastic.co/logstash/logstash:7.9.0 java -version會提供以下輸出:
Status: Downloaded newer image for docker.elastic.co/logstash/logstash:7.9.0
openjdk version "11.0.8" 2020-07-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.8 10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.8 10-LTS, mixed mode, sharing)
我不明白為什么 logstash docker 版本可以7.9.0識別java -version命令,而不是7.14.2. 我試著7.10.0和7.11.0等,似乎是相同的,不能檢查。如何檢查 java 版本以獲取超出的 logstash 版本7.9.x?
uj5u.com熱心網友回復:
由于 7.10 版 Logstash 使用捆綁的 java,這就是為什么您可以java在使用 7.9 docker 映像時運行該命令,而不是在使用高于該版本時運行該命令。
在 7.9 版本之前,docker 鏡像使用 java 安裝yum,這使得java二進制檔案在容器中全域可用,因為它的位置在PATH環境變數中匯出。
從 7.10 版開始,yum由于使用了捆綁的 java,因此未安裝java,因此java二進制檔案在PATH環境變數中不可用。
您將需要運行java二進制檔案的完整路徑,它應該是/usr/share/logstash/jdk/bin.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/326493.html
上一篇:如何連續復制檔案到docker
