Implementierungsschritte für die Docker-Bereitstellung von SpringBoot-Anwendungen

Implementierungsschritte für die Docker-Bereitstellung von SpringBoot-Anwendungen

Vorwort

Beim Bereitstellen eines Projekts müssen Sie möglicherweise auf node.js, Redis, RabbitMQ, MySQL usw. zurückgreifen. Die für die Bereitstellung dieser Dienste erforderlichen Funktionsbibliotheken und Abhängigkeiten sind unterschiedlich und können sogar miteinander in Konflikt geraten. Dies brachte große Schwierigkeiten beim Einsatz mit sich. Docker hat diese Probleme geschickt gelöst. Um die Kompatibilitätsprobleme von Abhängigkeiten zu lösen, verwendet Docker zwei Methoden:

  1. Verpacken Sie die Libs (Funktionsbibliotheken), Deps (Abhängigkeiten) und Konfigurationen der Anwendung zusammen mit der Anwendung
  2. Führen Sie jede Anwendung in einem isolierten Container aus, um gegenseitige Störungen zu vermeiden.

Bildbeschreibung hier einfügen

In diesem Artikel wird erklärt, wie Sie Docker zum Bereitstellen der Projekte verwenden, die wir normalerweise mit SpringBoot entwickeln:

Bildbeschreibung hier einfügen

Docker-Datei

Was ist ein Dockerfile?

Dockerfile ist eine Textdatei, die zum Erstellen eines Images verwendet wird. Der Textinhalt enthält die Anweisungen und Anleitungen, die zum Erstellen des Images erforderlich sind.

Bildbeschreibung hier einfügen

Dockerfile-Syntax

Beim Erstellen eines benutzerdefinierten Images müssen Sie nicht jede Datei einzeln kopieren und verpacken.

Wir müssen Docker nur die Zusammensetzung unseres Images mitteilen, welche BaseImages benötigt werden, welche Dateien kopiert werden müssen, welche Abhängigkeiten installiert werden müssen und was das Startskript ist. In Zukunft wird uns Docker beim Erstellen des Images helfen.

Die Datei, die die obigen Informationen beschreibt, ist die Dockerfile-Datei.

Dockerfile ist eine Textdatei, die Anweisungen enthält, die beschreiben, welche Vorgänge zum Erstellen eines Images ausgeführt werden müssen. Jeder Befehl bildet eine Ebene.

Bildbeschreibung hier einfügen

Verpacken des SpringBoot-Projekts

Vorbereitungsprojekt:

Projekt-Port

server.port=8080

Erstellen Sie eine neue index.html im Vorlagenordner

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<Kopf>
    <meta charset="UTF-8">
    <title>Docker-Bereitstellung der SpringBoot-Anwendung</title>
</Kopf>
<Text>
<h1>Docker-Bereitstellung von SpringBoot-Anwendungen</h1>
<img src="/static/img/2.jpg" alt="" width="100%">
</body>
</html>

Definieren Sie den Homepage-Controller und springen Sie zum Index

@Regler
öffentliche Klasse IndexController {

    @RequestMapping("/")
    öffentlicher Stringindex(){
        gib "Index" zurück;
    }
}

Zeigen Sie den Effekt lokal in der Vorschau an:

Bildbeschreibung hier einfügen

Verpacken Sie die SpringBoot-Anwendung lokal in ein JAR-Format.

Bereiten Sie das Plugin „maven-compiler-plugin“ vor

<Bauen>
	<!--Name der kompilierten und gepackten Datei-->
	<finalName>App</finalName>
	<Plugins>
		<Plugin>
			<!--GAV-Koordinaten (G-Organisations-ID, A-Projekt-ID, V-Versionsnummer)-->
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>Maven-Compiler-Plugin</artifactId>
			<version>3.8.1</version>
			<!--Konfiguration:
		    Im Allgemeinen sind Ziel und Quelle konsistent. Manchmal kann es jedoch vorkommen, dass sich Ziel und Quelle unterscheiden -->, damit das Programm in anderen Versionen des JDK ausgeführt werden kann (bei einem Ziel-JDK mit niedrigerer Version kann der Quellcode keine Syntax verwenden, die von der niedrigeren Version des JDK nicht unterstützt wird).
			<Konfiguration>
				<!--Vom Quellcode verwendete JDK-Version-->
				<Quelle>1.8</Quelle>
				<!-- Die kompilierte Version der zu generierenden Zielklassendatei-->
				<target>1,8</target>
				<!-- Zeichensatzkodierung um chinesische Zeichenverfälschungen zu verhindern -->
				<Kodierung>UTF-8</Kodierung>
			</Konfiguration>
		</plugin>
	</plugins>
</bauen>

Maven ist ein Projektmanagement-Tool. Wenn Sie ihm nicht mitteilen, welche JDK-Version zum Kompilieren des Codes verwendet werden soll, wird die Standard-JDK-Version des Kompilierungs-Plugins „maven-compiler-plugin“ verwendet. Dies führt leicht zu Versionskonflikten, die zu Kompilierungsfehlern führen können. Wenn der Code beispielsweise neue Features von Java 8 nutzt, etwa funktionale Programmierung, Maven aber beim Kompilieren Java 7 verwendet, dann ist es völlig unmöglich, diesen Code in eine .class-Datei zu kompilieren. Um diese Situation zu vermeiden, besteht mein erster Schritt beim Erstellen eines Maven-Projekts darin, das Plugin „Maven-Compiler-Plugin“ zu konfigurieren und dabei die JDK-Version des Projektquellcodes, die kompilierte JDK-Version und die Codierungsmethode anzugeben.

Führen Sie dann clean aus und führen Sie schließlich package aus, um das Projekt zu verpacken

Bildbeschreibung hier einfügen

Die Meldung „BUILD SUCCESS“ zeigt an, dass das Paket erfolgreich abgeschlossen wurde.

Bildbeschreibung hier einfügen

Nach erfolgreicher Verpackung wird der Zielordner angezeigt und das gerade verpackte JAR-Paket befindet sich im Verzeichnis

Bildbeschreibung hier einfügen

Bereiten Sie das JAR-Paket und die Docker-Datei vor

Kopieren Sie das JAR auf den Desktop oder an einen benutzerdefinierten Speicherort und erstellen und schreiben Sie die Dockerfile-Datei lokal (注:名字必須為Dockerfile,去掉后綴名)

Bildbeschreibung hier einfügen

Schreiben einer Docker-Datei

Dockerfile-Anweisungen

VON java:8-alpine
KOPIEREN ./app.jar /tmp/app.jar
EINSTIEGSPUNKT java -jar /tmp/app.jar

Dockerfile-Beschreibung

VON java:8-alpine:

Erstellen Sie ein Image basierend auf Java8. Standardmäßig erfordert das Erstellen eines Java-Images die Installation und Konfiguration von Umgebungsvariablen. Das Image java:8-alpine hat alle vorherigen Schritte bereits für uns ausgeführt.

KOPIEREN ./app.jar /tmp/app.jar

Kopieren Sie das JAR-Paket

EINSTIEGSPUNKT java -jar /tmp/app.jar

Eingabebefehl

Verwenden Sie das Tool, um das JAR und das Dockerfile auf den Server hochzuladen

Der Upload-Speicherort ist individuell. Ich speichere es unter: /tmp/docker

CD tmp
mkdir Docker

Wählen Sie „Datei hochladen“

Bildbeschreibung hier einfügen

In das Verzeichnis /tmp/docker hochladen

Bildbeschreibung hier einfügen

Erstellen des Images

Geben Sie das Verzeichnis ein, in das Sie die Datei hochgeladen haben: cd /tmp/docker . Geben Sie ls ein, um die Datei anzuzeigen.

Bildbeschreibung hier einfügen

Geben Sie den Befehl zum Erstellen des Images ein

Docker-Build -t Test:1.0.

格式:docker build -t 鏡像名稱:版本號Dockerfile所在目錄路徑

Befehlserklärung:

build : Dockers sekundärer Befehl

  • Erstellen des Images

-t

  • - Name: Allgemeines Bildnamenformat: Name: Versionsnummer ( test:1.0 )

.

  • Das Verzeichnis, in dem sich das Dockerfile befindet. Da wir das Verzeichnis eingegeben haben, in dem sich das Dockerfile befindet, stellt . das aktuelle Verzeichnis dar.

Sie können sehen, dass beim Erstellen des Images die Ausführung in drei Schritten erfolgt, und zwar gemäß den drei Befehlen, die wir in Dockerfile geschrieben haben

Bildbeschreibung hier einfügen

Spiegel anzeigen

Zeigen Sie den Image-Befehl in Docker an:

Docker-Bilder

Sie können unseren benutzerdefinierten Bildtest sehen

Bildbeschreibung hier einfügen

Erstellen und Ausführen des Containers

Führen Sie den Docker-Image-Befehl aus:

docker run --name springboot -p 8080:8080 -d test:1.0

Befehlserklärung:

docker run : sekundärer Docker-Befehl

  • Erstellen und Ausführen des Containers

--name

  • Definieren Sie den Containernamen, gefolgt vom Containernamen ( springboot ).

-p Portzuordnung

  • Der Port auf der linken Seite ist der Linux-Port und der Port auf der rechten Seite ist die Container-Portnummer
  • Ordnen Sie den Linux-Port der Container-Portnummer zu, sodass der Zugriff auf den Linux-Port dem Zugriff auf die Container-Portnummer entspricht.

-d

  • Führen Sie den Container im Hintergrund aus. Andernfalls wird der Container nach dem Beenden nicht mehr ausgeführt.

test:1.0 –>Bildname

  • Wählen Sie Version 1.0 des benutzerdefinierten test aus, um einen Container zu erstellen

Der Container wurde erfolgreich erstellt und ausgeführt!

Bildbeschreibung hier einfügen

Sehen Sie sich das laufende Bild an

Ausführen des Image-Befehls

Docker PS 

Bildbeschreibung hier einfügen

Der Browser greift auf den Port 8080 des Servers zu

Bildbeschreibung hier einfügen

Mobiler Zugriff:

Bildbeschreibung hier einfügen

Protokolle anzeigen

Befehl „Containerprotokoll anzeigen“

Docker-Protokolle -f Springboot

veranschaulichen:

Containerprotokolle anzeigen, diese werden jedoch nicht in Echtzeit aktualisiert. Sie müssen es erneut ausführen, wenn Sie neue Protokolle anzeigen möchten

Docker-Protokolle + Containername

Echtzeit-Update-Protokoll

Docker-Protokolle -f + Containername 

Bildbeschreibung hier einfügen

Das Tutorial zur Docker-Bereitstellung der SpringBoot-Anwendung ist vorbei!

Dies ist das Ende dieses Artikels über die Docker-Bereitstellung von SpringBoot-Anwendungen. Weitere relevante Inhalte zur Docker-Bereitstellung von SpringBoot-Anwendungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierter Prozess der SpringBoot-Integration von Docker
  • Detaillierter Prozess der Integration von Docker mit der Idee, Springboot-Anwendungen schnell bereitzustellen
  • Einführung in die schnelle Docker-Bereitstellung eines SpringBoot-Projekts

<<:  Diskussion über Standard-Rand- und Füllwerte allgemeiner Elemente

>>:  Reines CSS, um einen automatischen Rotationseffekt des Karussellbanners zu erzielen

Artikel empfehlen

Die Umsetzung von Youdas neuem Petite-Vue

Inhaltsverzeichnis Vorwort Einführung Live Einfac...

Automatisches Erstellen und Bereitstellen mit Docker+Jenkins

Dieser Artikel stellt die automatische Build-Bere...

Detaillierte Erläuterung des Zahlungsfunktionscodes des Vue-Projekts

1. Alipay-Methode: Alipay-Methode: Klicken Sie zu...

So wechseln Sie in Linux effizient zwischen Verzeichnissen

Wenn es um den Verzeichniswechsel unter Linux geh...

Diskussion über die Möglichkeit zum Öffnen von Website-Hyperlinks

Ein neues Fenster wird geöffnet. Vorteile: Wenn d...

Ein Beispiel für die Verwendung von CSS-Methoden zur Erzielung von Modularität

1. Was sind CSS-Methoden? CSS methodologies könne...

Detaillierter Prozess der SpringBoot-Integration von Docker

Inhaltsverzeichnis 1. Demo-Projekt 1.1 Schnittste...

HTML-Elemente durch Anzeige oder Sichtbarkeit verbergen

Manchmal müssen wir steuern, ob HTML-Elemente auf ...

Häufig verwendete JS-Funktionsmethoden im Frontend

Inhaltsverzeichnis 1. E-Mail 2. Mobiltelefonnumme...

Floaten und Floaten löschen in der Übersichtsseite

1. Float: Der Hauptzweck besteht darin, den Effek...