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

xtrabackup MySQL-Datenbank sichern und wiederherstellen

Aufgrund einiger seiner eigenen Merkmale (Sperren...

Beispielcode zur Implementierung eines Musikplayers mit nativem JS

Dieser Artikel stellt hauptsächlich den Beispielc...

So verwenden Sie video.js in Vue zum Abspielen von Videos im M3U8-Format

Inhaltsverzeichnis 1. Installation 2. Einführung ...

Vue realisiert Click-Flip-Effekt

Verwenden Sie Vue, um einfach einen Click-Flip-Ef...

Installieren Sie mehrere PHP-Versionen für Nginx unter Linux

Wenn wir die LNPM-Serverumgebung installieren und...

Sprechen Sie über das Verständnis des CSS-Attributrands

1. Was ist eine Marge? Mit dem Rand wird die Abstä...

Beispiel für die Implementierung einer Komponente mit fester Unterseite in Vue

Inhaltsverzeichnis 【Wirkung】 【Implementierungsmet...

So erstellen, starten und stoppen Sie einen Docker-Container

1. Ein Container ist eine unabhängig laufende Anw...

Detaillierte Erklärung der MySQL-Binlog-Verwendung

binlog ist eine binäre Protokolldatei, die alle D...

Das WeChat-Applet implementiert das Schlangenspiel

In diesem Artikel wird der spezifische Code des W...

So zeigen Sie den Prozentsatz und die ersten paar Prozent in MySQL an

Inhaltsverzeichnis Erfordern Implementierungscode...