11/13のOracle Groundbreakers APAC Tour in Tokyoで日本語講演されたJava in a World of Containersをもとに書いています。 はじめに 以下の図はjava9以降のモジュールグラフです。 Javaでアプリケーションを作成するとき、このモジュールグラフに出ているものを全て使うことは稀でしょう。たとえば、java.xml,corba, javawsとかは必要無いときが多いです。 Dockerで何も考えずにLinuxとJDKの乗っているDockerイメージを作成すると結構な容量になります。そのため、コンテナとjavaは相性が悪いと言われることが多いようです。容量が多い、重い、起動が遅いなどなど。それでも、Javaが持つ特徴はコンテナに理想的でもあります。ランタイム、ハードやOSに依存しない、JVMによって保証されるセキュリティ互換性
![Dockerで動かす軽量なJava環境の作成 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/3a12c466e2f697b47d3c4bbda1628f07c9404fd3/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9RG9ja2VyJUUzJTgxJUE3JUU1JThCJTk1JUUzJTgxJThCJUUzJTgxJTk5JUU4JUJCJUJEJUU5JTg3JThGJUUzJTgxJUFBSmF2YSVFNyU5MiVCMCVFNSVBMiU4MyVFMyU4MSVBRSVFNCVCRCU5QyVFNiU4OCU5MCZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9NTlhNmM2ZjU0YTY3MjIzMjIyZjk5NzNkMGNiOTExNmU%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB6Z21mX21iZnAwMyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjY4YWE3ZDRjM2I1YzE2MWY4YzRiYTBkZTlkNTZlNWY%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D982169fb971dccc00d1a5a2079f74021)