Par documentation de la bibliothèque docker (citation et liens ci-dessous), voici un résumé:
L'image de facto. Utilisez-le en cas de doute.
openjdk:<version>-buster
, openjdk:<version>-stretch
etopenjdk:<version>-jessie
buster
, jessie
ou stretch
sont les noms de code de suite pour les versions de Debian et indiquent sur quelle version est basée l'image.
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 .
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 ):
Variantes d'image
Les openjdk
images sont disponibles dans de nombreuses saveurs, chacune conçue pour un cas d'utilisation spécifique.
openjdk:<version>
C'est l'image de facto. Si vous n'êtes pas sûr de vos besoins, vous souhaiterez probablement utiliser celui-ci. Il est conçu pour être utilisé à la fois comme conteneur à jeter (montez votre code source et démarrez le conteneur pour démarrer votre application), ainsi que comme base pour créer d'autres images.
Certaines de ces balises peuvent avoir des noms comme jessie ou s'étirer. Ce 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
Cette image est basée sur le célèbre projet Alpine Linux , disponible dans l' alpine
image officielle . Alpine Linux est beaucoup plus petit que la plupart des images de base de distribution (~ 5 Mo), et conduit donc à des images beaucoup plus minces en général.
Cette variante est fortement recommandée lorsque la taille finale de l'image est la plus petite possible. La principale mise en garde à noter est qu'il utilise musl libc au lieu de la glibc et de ses amis , donc certains logiciels peuvent rencontrer des problèmes en fonction de la profondeur de leurs exigences en matière de libc. Cependant, la plupart des logiciels n'ont pas de problème avec cela, donc cette variante est généralement un choix très sûr. Voir ce fil de commentaires Hacker News pour plus de discussion sur les problèmes qui pourraient survenir et quelques comparaisons pour / contre de l'utilisation d'images basées sur Alpine.
Pour minimiser la taille de l'image, il est rare que des outils connexes supplémentaires (tels que git
ou bash
) soient inclus dans les images alpines. En utilisant cette image comme base, ajoutez les éléments dont vous avez besoin dans votre propre fichier Docker (voir la alpine
description de l' image pour des exemples sur la façon d'installer des packages si vous n'êtes pas familier).
openjdk:<version>-windowsservercore
Cette image est basée sur Windows Server Core ( microsoft/windowsservercore
) . En tant que tel, cela ne fonctionne que dans les endroits où cette image le fait, tels que Windows 10 Professionnel / Entreprise (Édition anniversaire) ou Windows Server 2016.
Pour plus d'informations sur la façon de faire fonctionner Docker sous Windows, veuillez consulter le guide "Démarrage rapide" correspondant fourni par Microsoft:
openjdk:<version>-slim
Cette image installe le -headless
package d'OpenJDK et il manque donc de nombreuses bibliothèques Java liées à l'interface utilisateur et certains packages communs contenus dans la balise par défaut. Il ne contient que les packages minimaux nécessaires pour exécuter Java. Sauf si vous travaillez dans un environnement où
seule l' openjdk
image sera déployée et que vous avez des contraintes d'espace, nous vous recommandons vivement d'utiliser l'image par défaut de ce référentiel.