Je cherche à choisir une image docker pour créer une application java et à regarder les variantes des images OpenJDK disponibles. Je regarde ici https://github.com/docker-library/openjdk/tree/master/8/jdk et vois alpin, slim et windows. Quelles sont les différences entre ceux-ci et que donne chaque variante?
java
docker
dockerfile
mailtobash
la source
la source
FROM
lignes des Dockerfiles dans le lien que vous avez donné est également informative. Les images Alpine sont beaucoup plus petites que les images basées sur Debian, mais peuvent également rencontrer des problèmes de compatibilité de différentes manières.Réponses:
Par documentation de la bibliothèque docker (citation et liens ci-dessous), voici un résumé:
openjdk:<version>
L'image de facto. Utilisez-le en cas de doute.
openjdk:<version>-buster
,openjdk:<version>-stretch
etopenjdk:<version>-jessie
buster
,jessie
oustretch
sont les noms de code de suite pour les versions de Debian et indiquent sur quelle version est basée l'image.openjdk:<version>-alpine
De même, cette image est basée sur Alpine Linux , étant donc une très petite image de base. Il est recommandé si vous avez besoin d'une taille d'image aussi petite que possible. La mise en garde est qu'il utilise des bibliothèques inhabituelles, mais ne devrait pas être un problème pour la plupart des logiciels. En cas de doute, consultez les documents officiels ci-dessous.
openjdk:<version>
(à partir de 12 ans),openjdk:<version>-oracle
etopenjdk:<version>-oraclelinux7
En commençant par
openjdk:12
l'image par défaut ainsi que les variantes-oracle
et-oraclelinux7
sont basées sur l'image officielle d' Oracle Linux 7 . Les binaires OpenJDK de l'image par défaut ainsi que les variantes-oracle
et-oraclelinux7
sont créés par Oracle et proviennent de la communauté OpenJDK .openjdk:<version>-slim
Cette image ne contient que les packages minimaux nécessaires pour exécuter Java (et il manque de nombreuses bibliothèques Java liées à l'interface utilisateur, par exemple). Sauf si vous travaillez dans un environnement où seule l'
openjdk
image sera déployée et que vous avez des contraintes d'espace, l'image par défaut est recommandée sur celle-ci.openjdk:<version>-windowsservercore
Cette image est basée sur Windows Server Core (
microsoft/windowsservercore
) .Documents complets ( version ci-dessous ici , dernière version ici ):
la source
Choisissez une image docker de base qui correspond à vos besoins et gardez à l'esprit que la taille de l'image est également un aspect important .
L'image peut être considérée comme un ensemble d'instructions sur la façon de créer le conteneur. Dans Docker, une image peut être héritée (ou basée sur) une autre image, en ajoutant des instructions supplémentaires en plus de celles de base. Chaque image se compose de plusieurs couches, qui sont effectivement immuables.
Veuillez lire l'article Créer le parfait flux de construction Java Docker .
Pour exécuter une application Java, vous avez au moins besoin de JRE. Par exemple, pour un projet de printemps, votre image peut être basée sur
slim Alpine Linux with OpenJDK JRE
:Vous pouvez également utiliser
docker history yourImageName
pour voir tous les calques (et leur taille) qui composent votre image.la source