Java 11은 최신 LTS 버전으로 발표되었습니다. 따라서이 Java 버전을 기반으로 새로운 서비스를 시작하려고합니다.
그러나 Java 11의 기본 Docker 이미지는 Java 8의 이미지보다 훨씬 큽니다.
openjdk:8-jre-alpine
: 84MBopenjdk:11-jre-slim
: (283) MB
( 공식 OpenJDK 만 고려하고 있습니다. 와 각 Java 버전에 대해 가장 가벼운 이미지 하고 있습니다.)
더 깊이 파고 들면 다음과 같은 것들이 발견되었습니다.
openjdk:11-jre-slim
이미지는베이스 이미지를 사용debian:sid-slim
. 이것은 두 가지 문제를 가져옵니다.이보다 60MB 더 큽니다.
alpine:3.8
데비안
sid
버전은 불안정하다
openjdk-11-jre-headless
화상 설치 패키지는 3 배 보다openjdk8-jre
(도커 컨테이너를 실행하는 내부) :openjdk:8-jre-alpine
:/ # du -hs /usr/lib/jvm/java-1.8-openjdk/jre/lib/ 57.5M /usr/lib/jvm/java-1.8-openjdk/jre/lib/
openjdk:11-jre-slim
:# du -sh /usr/lib/jvm/java-11-openjdk-amd64/lib/ 179M /usr/lib/jvm/java-11-openjdk-amd64/lib/
더 깊이 들어가면이 무거움의 "루트"를 발견했습니다
modules
. JDK 의 파일입니다.# ls -lhG /usr/lib/jvm/java-11-openjdk-amd64/lib/modules 135M /usr/lib/jvm/java-11-openjdk-amd64/lib/modules
이제 질문이 왔습니다.
왜
alpine
Java 11 슬림 이미지의 기본 이미지로 더 이상 사용되지 않는 입니까?왜 불안정한 sid 버전이 LTS Java 이미지에 사용되는 입니까?
OpenJDK 11 용 슬림 / 헤드리스 / JRE 패키지가 비슷한 OpenJDK 8 패키지에 비해 왜 그렇게 큰가요?
- OpenJDK 11에서 135MB를 가져 오는 이 모듈 파일 은 무엇입니까 ?
UPD : 이러한 과제에 대한 솔루션으로 다음 답변을 사용할 수 있습니다. 도커 이미지로 Java 11 응용 프로그램