Según los documentos de la biblioteca de Docker (cita y enlaces a continuación), aquí hay un resumen:
La imagen de facto. Úselo si no está seguro.
openjdk:<version>-buster
, openjdk:<version>-stretch
yopenjdk:<version>-jessie
buster
, jessie
o stretch
son los nombres de código de la suite para las versiones de Debian e indican en qué versión se basa la imagen.
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 .
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 soloopenjdk
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í ):
Variantes de imagen
Las openjdk
imágenes vienen en muchos sabores, cada uno diseñado para un caso de uso específico.
openjdk:<version>
Esta es la imagen de facto. Si no está seguro de cuáles son sus necesidades, probablemente desee utilizar este. Está diseñado para usarse tanto como un contenedor desechable (monta tu código fuente e inicia el contenedor para iniciar tu aplicación), así como la base para construir otras imágenes a partir de.
Algunas de estas etiquetas pueden tener nombres como jessie o estirarse. Estos 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
Esta imagen se basa en el popular proyecto Alpine Linux , disponible en la alpine
imagen oficial . Alpine Linux es mucho más pequeño que la mayoría de las imágenes base de distribución (~ 5 MB) y, por lo tanto, genera imágenes mucho más delgadas en general.
Esta variante es muy recomendable cuando se desea que el tamaño final de la imagen sea lo más pequeño posible. La principal advertencia a tener en cuenta es que usa musl libc en lugar de glibc y friends , por lo que cierto software puede tener problemas dependiendo de la profundidad de sus requisitos de libc. Sin embargo, la mayoría del software no tiene problemas con esto, por lo que esta variante suele ser una opción muy segura. Consulte este hilo de comentarios de Hacker News para obtener más información sobre los problemas que podrían surgir y algunas comparaciones a favor y en contra del uso de imágenes basadas en Alpine.
Para minimizar el tamaño de la imagen, es poco común que se incluyan herramientas adicionales relacionadas (como git
o bash
) en las imágenes basadas en Alpine. Usando esta imagen como base, agregue las cosas que necesita en su propio Dockerfile (vea la alpine
descripción de la imagen para ver ejemplos de cómo instalar paquetes si no está familiarizado).
openjdk:<version>-windowsservercore
Esta imagen está basada en Windows Server Core ( microsoft/windowsservercore
) . Como tal, solo funciona en lugares donde esa imagen lo hace, como Windows 10 Professional / Enterprise (Anniversary Edition) o Windows Server 2016.
Para obtener información sobre cómo ejecutar Docker en Windows, consulte la guía de "Inicio rápido" correspondiente proporcionada por Microsoft:
openjdk:<version>-slim
Esta imagen instala el -headless
paquete de OpenJDK y, por lo tanto, faltan muchas de las bibliotecas Java relacionadas con la interfaz de usuario y algunos paquetes comunes contenidos en la etiqueta predeterminada. Solo contiene los paquetes mínimos necesarios para ejecutar Java. A menos que esté trabajando en un entorno en el que
soloopenjdk
se implementará la imagen y tiene limitaciones de espacio, le recomendamos que utilice la imagen predeterminada de este repositorio.