Consideraciones adicionales
En esta sección, se tratan las consideraciones generales sobre la organización en contenedores de Java que no son específicas de las aplicaciones Java EE.
Utilizar una imagen base pequeña
Recomendamos crear una imagen base pequeña (menos de 500 MB), correctamente conservada. Al reducir el tamaño de la imagen base, se reducen los costos operativos y de red. Una imagen base más pequeña también puede mejorar la seguridad al reducir la cantidad de componentes que se pueden utilizar. Puede utilizar una de las imágenes distroless basadas en Debian. Las imágenes tienen el número mínimo de herramientas instaladas y no contienen administradores de paquetes ni intérpretes de comandos. Estas imágenes distrolless también reducen la superficie general de ataque. Las imágenes distrolless pueden ocupar menos de 150 MB. Para obtener más información, consulte el repositorio GitHub Imágenes de contenedor “Distroless”
Recomendamos seguir el principio de disponibilidad y desarrollar un tiempo de inicio rápido para las imágenes de contenedores. Existen técnicas como compilación anticipada
Actualizar a una versión de JDK compatible con contenedores
Antes de JDK 8u131, la JVM no reconocía los límites de memoria o CPU establecidos por el motor Docker mediante marcas. Esto significa que cada vez que se ejecuta la aplicación en un contenedor, la JVM “ve” el número total de procesadores disponibles en el sistema o, en el caso de las máquinas virtuales, el sistema virtual. Lo mismo ocurre con los límites de memoria predeterminados: la JVM analizará la memoria total del host y la utilizará para establecer sus valores predeterminados. En consecuencia, la JVM puede ocupar más memoria de la que permite la plataforma del contenedor, lo cual hace que la plataforma del contenedor (Docker) finalice el proceso de Java. Una solución para este problema consiste en migrar la aplicación Java a Java 9 u 8u131+ antes de colocarla en un contenedor. Java 10 y las versiones posteriores tienen compatibilidad completa con los contenedores.