Двоичный файл имеет зависимости общей библиотеки. Если этих зависимостей нет в системе, они не запустятся.
Как вы сказали, трудно напрямую проверить образ, но вы можете взглянуть на исполняемый файл в вашей хост-системе. Вот как это выглядит на моем:
$ ldd java/jdk-11.0.2/bin/java
linux-vdso.so.1 (0x00007ffc16fac000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd839c97000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd839a78000)
libjli.so => /home/jkugelman/from-scratch-java/java/jdk-11.0.2/bin/../lib/jli/libjli.so (0x00007fd839867000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd839663000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd839272000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd839eb4000)
Mounting /lib
и /lib64
запускает его:
$ docker run --rm -it -v /lib:/lib -v /lib64:/lib64 from-scratch-java
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)