Ich suche nach einem Docker-Image, um eine Java-App zu erstellen, und schaue mir die Varianten der verfügbaren OpenJDK-Images an. Ich schaue hier https://github.com/docker-library/openjdk/tree/master/8/jdk und sehe alpine, schlanke und Fenster. Was sind die Unterschiede zwischen diesen und was gibt jede Variante?
java
docker
dockerfile
mailtobash
quelle
quelle
FROM
Zeilen der Docker-Dateien in dem von Ihnen angegebenen Link ist ebenfalls informativ. Die alpinen Bilder sind viel kleiner als die Debian-basierten Bilder, können aber auch auf verschiedene Weise auf Kompatibilitätsprobleme stoßen.Antworten:
Hier finden Sie eine Zusammenfassung der Docker-Bibliotheksdokumente (Zitat und Links unten):
openjdk:<version>
Das defacto Bild. Verwenden Sie es, wenn Sie sich nicht sicher sind.
openjdk:<version>-buster
,openjdk:<version>-stretch
undopenjdk:<version>-jessie
buster
,jessie
oderstretch
sind die Suite-Codenamen für Debian- Versionen und geben an, auf welcher Version das Image basiert.openjdk:<version>-alpine
In ähnlicher Weise basiert dieses Image auf Alpine Linux und ist somit ein sehr kleines Basis-Image. Es wird empfohlen, wenn Sie eine möglichst kleine Bildgröße benötigen. Die Einschränkung ist, dass es einige ungewöhnliche Bibliotheken verwendet, aber für die meisten Softwareprogramme kein Problem sein sollte. Überprüfen Sie im Zweifelsfall die offiziellen Dokumente unten.
openjdk:<version>
(ab 12)openjdk:<version>-oracle
undopenjdk:<version>-oraclelinux7
Beginnend mit
openjdk:12
dem Standard-Image sowie die-oracle
und-oraclelinux7
-Varianten basieren sie auf dem offiziellen Oracle Linux 7-Image . Die OpenJDK-Binärdateien im Standard-Image sowie die-oracle
und-oraclelinux7
-Varianten werden von Oracle erstellt und stammen aus der OpenJDK-Community .openjdk:<version>-slim
Dieses Image enthält nur die minimalen Pakete, die zum Ausführen von Java erforderlich sind (und es fehlen beispielsweise viele der Java-Bibliotheken im Zusammenhang mit der Benutzeroberfläche). Sofern Sie nicht in einer Umgebung arbeiten, in der nur das
openjdk
Image bereitgestellt wird und Sie über Speicherplatzbeschränkungen verfügen, wird das Standard-Image gegenüber diesem empfohlen.openjdk:<version>-windowsservercore
Dieses Image basiert auf Windows Server Core (
microsoft/windowsservercore
) .Vollständige Dokumentation ( Version hier unten , neueste Version hier ):
quelle
Wählen Sie ein Basis-Docker-Image, das Ihren Anforderungen entspricht, und beachten Sie, dass die Bildgröße ebenfalls ein wichtiger Aspekt ist .
Das Bild kann als eine Anleitung zum Erstellen des Containers betrachtet werden. In Docker kann ein Bild von einem anderen Bild geerbt werden (oder darauf basieren), wobei zusätzliche Anweisungen zusätzlich zu den Basisbildern hinzugefügt werden. Jedes Bild besteht aus mehreren Ebenen, die effektiv unveränderlich sind.
Bitte lesen Sie Erstellen Sie den perfekten Java Docker Build Flow- Artikel.
Um eine Java-Anwendung auszuführen, benötigen Sie mindestens JRE. Für ein Frühlingsprojekt kann Ihr Bild beispielsweise auf Folgendem basieren
slim Alpine Linux with OpenJDK JRE
:Sie können auch
docker history yourImageName
alle Ebenen (und deren Größe) anzeigen, aus denen Ihr Bild besteht.quelle