Estoy buscando tomar una imagen de la ventana acoplable para crear una aplicación Java y observar las variantes de las imágenes OpenJDK disponibles. Estoy buscando aquí https://github.com/docker-library/openjdk/tree/master/8/jdk y veo alpine, slim y windows. ¿Cuáles son las diferencias entre estos y qué aporta cada variante?
                    
                        java
                                docker
                                dockerfile
                                
                    
                    
                        mailtobash
fuente
                
                fuente

FROMlíneas de los Dockerfiles en el enlace que proporcionó también es informativo. Las imágenes de Alpine son mucho más pequeñas que las imágenes basadas en Debian, pero también pueden encontrar problemas de compatibilidad de varias formas.Respuestas:
Según los documentos de la biblioteca de Docker (cita y enlaces a continuación), aquí hay un resumen:
openjdk:<version>La imagen de facto. Úselo si no está seguro.
openjdk:<version>-buster,openjdk:<version>-stretchyopenjdk:<version>-jessiebuster,jessieostretchson los nombres de código de la suite para las versiones de Debian e indican en qué versión se basa la imagen.openjdk:<version>-alpineDel mismo modo, esta imagen está basada en Alpine Linux , por lo que es una imagen base muy pequeña. Se recomienda si necesita un tamaño de imagen lo más pequeño posible. La advertencia es que utiliza algunas bibliotecas inusuales, pero no debería ser un problema para la mayoría del software. En caso de duda, consulte los documentos oficiales a continuación.
openjdk:<version>(de 12 en adelante),openjdk:<version>-oracleyopenjdk:<version>-oraclelinux7Comenzando con
openjdk:12la imagen predeterminada, así como las variantes-oracley,-oraclelinux7se basan en la imagen oficial de Oracle Linux 7 . Los binarios de OpenJDK en la imagen predeterminada, así como las variantes-oracley,-oraclelinux7son creados por Oracle y provienen de la comunidad OpenJDK .openjdk:<version>-slimEsta imagen solo contiene los paquetes mínimos necesarios para ejecutar Java (y faltan muchas de las bibliotecas de Java relacionadas con la interfaz de usuario, por ejemplo). A menos que esté trabajando en un entorno donde solo
openjdkse implementará la imagen y tiene limitaciones de espacio, se recomienda la imagen predeterminada en lugar de esta.openjdk:<version>-windowsservercoreEsta imagen está basada en Windows Server Core (
microsoft/windowsservercore) .Documentos completos (la versión se muestra a continuación aquí , la última versión aquí ):
fuente
Elija una imagen de la ventana acoplable base que se adapte a sus necesidades y tenga en cuenta que el tamaño de la imagen también es un aspecto importante .
La imagen se puede considerar como un conjunto de instrucciones sobre cómo crear el contenedor. En Docker, una imagen podría heredarse de (o basarse en) otra imagen, agregando instrucciones adicionales sobre las base. Cada imagen consta de varias capas, que son efectivamente inmutables.
Lea el artículo Cómo crear el flujo de compilación perfecto de Java Docker .
Para ejecutar una aplicación Java, necesita al menos JRE. Por ejemplo, para un proyecto de primavera, su imagen puede basarse en
slim Alpine Linux with OpenJDK JRE:También puedes usar
docker history yourImageNamepara ver todas las capas (y su tamaño) que conforma tu imagen.fuente