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
FROM
lí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>-stretch
yopenjdk:<version>-jessie
buster
,jessie
ostretch
son 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>-alpine
Del 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>-oracle
yopenjdk:<version>-oraclelinux7
Comenzando con
openjdk:12
la imagen predeterminada, así como las variantes-oracle
y,-oraclelinux7
se basan en la imagen oficial de Oracle Linux 7 . Los binarios de OpenJDK en la imagen predeterminada, así como las variantes-oracle
y,-oraclelinux7
son creados por Oracle y provienen de la comunidad OpenJDK .openjdk:<version>-slim
Esta 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
openjdk
se implementará la imagen y tiene limitaciones de espacio, se recomienda la imagen predeterminada en lugar de esta.openjdk:<version>-windowsservercore
Esta 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 yourImageName
para ver todas las capas (y su tamaño) que conforma tu imagen.fuente