Da docker kein Betriebssystem ist, gibt es kein JDK für docker.
Soweit ich Ihre Frage verstehe, ist ein vollständiges JDK zu groß für Ihre Wünsche. In diesem Fall können Sie versuchen, nur auf das JRE zu wechseln und nur die erforderlichen Bibliotheken einzuschließen.
JDK ist die Abkürzung für Java Development Kit, JRE ist die Abkürzung für Java Runtime Engine. Durch "Faulheit" aufgrund der Komplexität, jede benötigte Abhängigkeit aufzulisten, streift sich niemand nur zu den benötigten Bibliotheken, aber das ist der richtige Weg, wenn Sie die installierte Größe auf ein striktes Minimum reduzieren möchten.
Ein besserer Weg könnte darin bestehen, einige der installierten Dinge zu entfernen, die viel Platz beanspruchen:
/usr/lib/jvm/jdk1.8.0_101$ du -hs *
776K bin
4.0K COPYRIGHT
5.7M db
208K include
4.9M javafx-src.zip
187M jre
133M lib
4.0K LICENSE
2.0M man
4.0K README.html
4.0K release
21M src.zip
108K THIRDPARTYLICENSEREADME-JAVAFX.txt
176K THIRDPARTYLICENSEREADME.txt
Es gibt zwei * src.zip, die entfernt werden können, aber nicht von Nutzen sind. Wie Sie sehen, ist das lib-Verzeichnis halb so groß und enthält eine Reihe von Dingen, die Sie nicht wirklich benötigen:
/usr/lib/jvm/jdk1.8.0_101$ du -hs lib/*
120K lib/amd64
1.2M lib/ant-javafx.jar
18M lib/ct.sym
160K lib/dt.jar
20K lib/ir.idl
36K lib/javafx-mx.jar
400K lib/jconsole.jar
12K lib/jexec
60M lib/missioncontrol
4.0K lib/orb.idl
8.0K lib/packager.jar
2.4M lib/sa-jdi.jar
18M lib/tools.jar
34M lib/visualvm
Sie können missoncontrol problemlos auf einem Server entfernen. Ich gehe davon aus, dass Sie visualvm auch entfernen können. Sie müssen prüfen, ob Sie etwas in diesem lib-Verzeichnis benötigen, aber ich kann es nicht sagen, ohne Ihre App zu kennen.
Eine Sache, die Sie während der Installation von Oracle JDK in Ihrer Docker- .tar.gz
Datei tun sollten, ist, die heruntergeladene Datei zu entfernen, die ungefähr dieselbe Größe wie das resultierende Verzeichnis hat, da die .jar
Dateien bereits komprimiert sind.
Sie müssen all dies im selben RUN
Befehl ausführen und mit verketten &&
, um zu vermeiden, dass Ebenen hinzugefügt werden, bei denen Sie die Größe nicht entfernen, indem Sie Dateien von der vorherigen Ebene entfernen.