Поскольку 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, которые можно удалить, они не будут полезны, и, как вы можете видеть, каталог lib в два раза меньше, и внутри него есть куча вещей, которые вам на самом деле не нужны:
/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 на сервере, я полагаю, вы также можете избавиться от visualvm, вам придется проверить, нужно ли вам что-то в этом каталоге lib, но я не могу сказать, не зная вашего приложения.
Одна вещь, которую вы должны сделать в вашем dockerfile при установке oracle jdk, - это удалить загруженный .tar.gz
файл, размер которого примерно равен размеру результирующего каталога, так как .jar
файлы уже сжаты, tar.gz просто «упаковывает» их.
Вы должны сделать все это в одной RUN
команде, &&
чтобы избежать добавления слоев, размер которых не будет удален путем удаления файлов из предыдущего слоя.