Detaillierter Prozess der SpringBoot-Integration von Docker

Detaillierter Prozess der SpringBoot-Integration von Docker

Ich habe meinem Memo in letzter Zeit viele neue Dinge hinzugefügt, bin jedoch nicht an die neue Umgebung gewöhnt und habe keine Motivation, meine Notizen zu ordnen.

1. Demo-Projekt

Bereiten Sie zunächst ein einfaches Projekt zur Bereitstellung auf dem Docker-Host vor und überprüfen Sie, ob das Projekt erfolgreich ausgeführt wird.

1.1 Schnittstellenvorbereitung

Bereiten Sie eine Testschnittstelle vor, um zu überprüfen, ob die Docker-Bereitstellung erfolgreich ist

@RestController
@RequestMapping("/")
öffentliche Klasse HelloController {

    @GetMapping("/hallo")
    öffentliche Zeichenfolge ausblenden() {
        returniere "Hallo Welt";
    }
}

1.2 Konfigurationsvorbereitung

Fügen Sie die Docker-Hostadresse in der Datei application.yml hinzu, um eine einheitliche Verwaltung zu ermöglichen (für diese Funktion ist die Installation abhängiger Plug-Ins erforderlich).

Server:
  Port: 8080

Frühling:
  Anwendung:
    Name: Docker-Bereitstellungstest

Docker:
  Host: http://xxx.xxx.xxx.xxx:2375

2. Docker öffnet Remote-Verbindung

Docker ist auch eine Client/Server-Architektur (Dameon-Daemon), auf die standardmäßig nur lokal zugegriffen werden kann. Daher müssen wir sie so einrichten, dass sie vom Internet aus zugänglich ist, bevor wir das Projekt in Docker bereitstellen können.

1.1 Ändern der Konfigurationsdatei

Bearbeiten Sie die Konfiguration auf dem Docker-Host und fügen Sie die folgende Konfigurationszeile hinzu (was bedeutet, dass jede Adresse auf Port 2375 zugreifen kann)

$vim /usr/lib/systemd/system/docker.service
 
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

1.2 Konfiguration aktualisieren und neu starten

$ systemctl daemon-neu laden
$ systemctl Neustart Docker

1.3 Authentifizierungs-Login

Öffnen Sie Port 2357 direkt, damit jeder Dinge auf den Docker-Host pushen kann. Mir wurde zu Beginn ein Mining-Image gepusht, und der Host blieb hängen und ich konnte mich nicht anmelden. Später blieb mir nichts anderes übrig, als das System-Image neu zu installieren. Docker unterstützt die Anmeldung mit SSL-Zertifikaten. Wenn Sie sich in einer externen Netzwerkumgebung befinden, müssen Sie sich unbedingt mit SSL anmelden (der Autor hat OpenSSL-Notizen ---- zur Authentifizierung aufgezeichnet, hatte aber keine Zeit, sie zu organisieren).

3. Installieren Sie das Docker-Plugin in IDEA

In der von mir verwendeten 2019er-Version von IDEA ist das Docker-Plugin bereits standardmäßig integriert und muss nicht erneut installiert werden. Passen Sie einfach die Adresse und den Port des Remote-Hosts an, mit dem IDEA eine Verbindung herstellen soll, und überprüfen Sie abschließend, ob eine Verbindung zum Remote-Docker-Host besteht.

Erstellen Sie hier einen neuen Docker, geben Sie die Hostadresse ein und es wird automatisch eine Verbindung hergestellt. Wenn die Anzeige „Verbindung erfolgreich“ angezeigt wird, bedeutet dies, dass IDEA mit dem Host verbunden ist.

4. Docker-Plugin zu Maven hinzufügen

Das IDEA-Plug-In im vorherigen Schritt kann Images erstellen und bereitstellen und auch Docker verwalten. Der Autor verwendet jedoch das Maven-Plugin und das IDEA-Plugin zusammen, was die Programmkonstruktion und -bereitstellung erleichtern kann

<!-- Docker-Plugin -->
<Plugin>
    <groupId>com.spotify</groupId>
    <artifactId>Docker-Maven-Plugin</artifactId>
    <version>1.0.0</version>

    <!-- Docker:Build an Maven-Paket-Lebenszyklus binden -->
    <Hinrichtungen>
        <Ausführung>
            <id>Docker-Build-Image</id>
            <phase>Paket</phase>
            <Ziele>
                <goal>bauen</goal>
            </Ziele>
        </Ausführung>
    </Ausführungen>

    <!-- Plugin-Konfiguration -->
    <Konfiguration>
        <!-- Name des erstellten Images: tag-->
        <imageName>${project.artifactId}:${project.version}</imageName>
        <!-- Pfad zum Speichern der Docker-Datei-->
        <dockerDirectory>${project.basedir}</dockerDirectory>
        <!-- Docker-Hostadresse, die vom Plugin während der Initialisierungsphase aus application.yml analysiert wurde -->
        <dockerHost>${docker.host}</dockerHost>
        <!-- Adresse des SSL-Authentifizierungszertifikats, wenn die SSL-Anmeldung aktiviert ist-->
        <!-- <dockerCertPath></dockerCertPath> -->
        <Ressourcen>
            <Ressource>
                <!-- Welche Ressourcen werden zum Erstellen des Images verwendet (also das JAR-Paket) und das Verzeichnis, in das das Image in den Container übertragen wird-->
                <Zielpfad>/</Zielpfad>
                <Verzeichnis>${project.build.directory}</Verzeichnis>
                <include>${project.build.finalName}.jar</include>
            </Ressource>
        </Ressourcen>
    </Konfiguration>
</plugin>

5. Dockerfile schreiben

Erstellen Sie eine Dockerfile-Datei, füllen Sie den folgenden Inhalt aus und legen Sie sie dann im Stammverzeichnis des Projekts ab

VON openjdk:8-jdk-alpine

MAINTAINER [Autor] [[email protected]]

ARG JAR_FILE=/ziel/*.jar

KOPIEREN SIE ${JAR_FILE} app.jar

EXPOSE 8080

EINSTIEGSPUNKT ["java","-jar","/app.jar"] 

6. Verpacken Sie das Projekt

Das Maven-Plugin bindet den Ausführungsprozess von Package und Docker:build, d. h., nachdem das Projekt in ein JAR gepackt wurde, wird Docker:build automatisch ausgeführt, um das Image zu erstellen und es auf dem Remote-Docker-Host zu veröffentlichen (wenn das Projekt groß ist, dauert es lange, bis das Image auf den Docker-Host übertragen wird).

7. Erstellen Sie einen Container

Sie können Docker im IDEA-Plugin verwalten. Klicken Sie unten rechts auf die Dienste und Sie können das gerade erstellte Image im verbundenen Docker sehen. Anschließend können Sie mit der rechten Maustaste auf dieses Image klicken, um einen Container zu erstellen.

Geben Sie im Popup-Fenster den Namen des zu erstellenden Containers und den dem Container zugeordneten Port ein, klicken Sie dann auf „Ausführen“ und warten Sie, bis der Container gestartet wird. Nach Abschluss des Startvorgangs können Sie den neu erstellten Container im IDEA-Plugin sehen. Klicken Sie darauf, um die Details des Containers anzuzeigen.

8. Bereitstellung überprüfen

Verwenden Sie die IP-Adresse oder den Domänennamen des Hosts, um auf die soeben veröffentlichte Testoberfläche zuzugreifen

Dies ist das Ende dieses Artikels über die Integration von SpringBoot mit Docker. Weitere relevante Inhalte zur Integration von SpringBoot mit Docker 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:
  • Implementierungsschritte für die Docker-Bereitstellung von SpringBoot-Anwendungen
  • Detaillierter Prozess der Integration von Docker mit der Idee, Springboot-Anwendungen schnell bereitzustellen
  • Einführung in die schnelle Docker-Bereitstellung eines SpringBoot-Projekts

<<:  Tabelle der durch hasLayout verursachten CSS-Fehler

>>:  Implementierung der CSS-Auswahl von untergeordneten Elementen für übergeordnete Elemente

Artikel empfehlen

Lösen Sie das Problem inkonsistenter Front- und Back-End-Ports von Vue

Die Front- und Back-End-Ports von Vue sind inkons...

Zusammenfassung der Ubuntu-Sicherungsmethoden (vier Typen)

Methode 1: Um Respin zu verwenden, folgen Sie die...

Vue Router vue-router ausführliche Erklärung Anleitung

Chinesische Dokumentation: https://router.vuejs.o...

Ein kurzer Vortrag über die Variablenförderung in JavaScript

Inhaltsverzeichnis Vorwort 1. Welche Variablen we...

Verwendung und Verschönerung von HTML-Blockquote-Tags

Definition und Verwendung von Blockquote Das Tag ...

Detaillierte Erläuterung der Verwendung der MySQL-Verkettungsfunktion CONCAT

In den vorherigen Artikeln wurden die Ersetzungsf...

Methode zum Erstellen eines Redis-Clusters basierend auf Docker

Laden Sie das Redis-Image herunter Docker-Pull yy...

JavaScript zum Filtern von Arrays

In diesem Artikelbeispiel wird der spezifische Co...

Eine kurze Diskussion über die Semantik von HTML und einige einfache Optimierungen

1. Was ist Semantisierung? Erklärung zum Bing-Wör...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.24

MySQL ist das beliebteste relationale Datenbankma...

Was wir von Googles neuer Benutzeroberfläche (Bilder und Text) lernen können

Die bedeutendste Website-Änderung im Jahr 2011 bet...