Оскільки docker не є операційною системою, немає і JDK для docker.
Як я розумію ваше запитання, це те, що повний JDK занадто великий для ваших побажань, в цьому випадку ви можете спробувати перейти на лише JRE і включити лише необхідні бібліотеки.
JDK - це абревіатура Java Development Kit, JRE - версія для Java Runtime Engine. Зважаючи на "ледачість" через складність перераховувати кожну необхідну залежність, ніхто не знімає лише до необхідних бібліотек, але це шлях, якщо ви бажаєте зменшити встановлений розмір до суворого мінімуму.
Більш корисним способом може бути позбавлення деяких встановлених речей, які займають багато місця:
/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
Є два * src.zip, які можна видалити, вони не будуть корисними, і як ви бачите, каталог файлів на половину розміру, і всередині нього є маса речей, які вам дійсно не потрібні:
/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
Ви можете без проблем видалити missoncontrol на сервері, я припускаю, що ви можете позбутися і від visvvm, вам доведеться перевірити, чи потрібно щось у цьому каталозі lib, але я не можу сказати, не знаючи вашої програми.
Одне, що ви повинні зробити у своєму dockerfile під час встановлення oracle jdk, - це видалити завантажений .tar.gz
файл, який має приблизно той самий розмір, що і результуюча директорія, оскільки .jar
файли вже стиснуті, tar.gz як раз там, щоб "пакувати" їх.
Ви повинні зробити все це в одній RUN
команді, поєднуючись з тим, &&
щоб уникнути додавання шарів, де ви не будете видаляти розмір, видаляючи файли з попереднього шару.