Detaillierter Prozess der Integration von Docker mit der Idee, Springboot-Anwendungen schnell bereitzustellen

Detaillierter Prozess der Integration von Docker mit der Idee, Springboot-Anwendungen schnell bereitzustellen

1. Einleitung

Ich glaube, jeder kennt den Begriff Containerisierung. Wenn wir ihn hören, denken wir vielleicht an Docker, K8s, Jenkins, Rancher usw. Heute werde ich darüber sprechen, wie Idea Docker verwendet, um Springboot-Anwendungen schnell bereitzustellen.

2. Umgebung und Werkzeuge

  • Windows 10 (Entwicklung)
  • Centos 7.6 (Bereitstellung)
  • Idee
  • Docker
  • xshell

3. Installieren Sie Docker und konfigurieren Sie die Remote-Verbindung

Die Installation von Docker im Internet umfasst viele Schritte. Lassen Sie uns diese hier noch einmal durchgehen:

Zuerst aktualisieren

sudo yum update

Installieren Sie den neuesten Docker

yum installiere Docker -y

Nach der Installation wie in der Abbildung gezeigt

Starten Sie Docker

systemctl starte Docker

Sie können docker images verwenden, um den Image-Status anzuzeigen. Die folgende Abbildung zeigt, dass der Start erfolgreich ist (derzeit ist kein Image darin enthalten).

Bildbeschreibung hier einfügen

Wenn es wie unten gezeigt ist, bedeutet dies, dass der Start fehlgeschlagen ist

Bildbeschreibung hier einfügen

Öffnen Sie die Docker-Remoteverbindung und bearbeiten Sie die Datei docker.service

vim /lib/systemd/system/docker.service

Nach dem Öffnen sieht der Inhalt wie folgt aus:

Bildbeschreibung hier einfügen

Fügen Sie der Zeile mit dem grünen Cursor Folgendes hinzu:

# centos7 und höher ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
# centos7 darunter ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375

Hier verwende ich andere Ports, beispielsweise 12377. Nach der Änderung sieht der Inhalt wie folgt aus:

Bildbeschreibung hier einfügen

Nach dem Speichern die Konfigurationsdatei erneut laden und Docker neu starten:

systemctl daemon-reload 
systemctl Neustart Docker

Um zu prüfen, ob Port 12377 abgehört wird, führen Sie lsof -i:12377 aus.

Bildbeschreibung hier einfügen

Wenn Sie einen Cloud-Server verwenden, müssen Sie die Firewall-Regel 12377 aktivieren. Wenn Sie den Standardport 2375 verwenden, spielt es keine Rolle, ob er nur in einer virtuellen Maschine oder im Intranet verwendet wird. Wenn er dem öffentlichen Netzwerk ausgesetzt ist, werden Sie wahrscheinlich feststellen, dass Ihre CPU am nächsten Tag voll ist und eine große Anzahl von Pferde- und Mining-Programmen gemountet ist. Studenten, die Zeit haben, können die Sicherheitskonfiguration weiter konfigurieren. Sie können hier danach suchen.

4. Idee verbindet sich mit Remote-Docker

Installieren Sie das Docker-Plugin

Bildbeschreibung hier einfügen

Nachdem die Konfigurationsverbindung installiert ist, suchen Sie den Speicherort in den Einstellungen wie unten gezeigt

Bildbeschreibung hier einfügen

Konfigurieren Sie Ihre Docker-Adresse auf dem TCP-Socket im folgenden Format:
tcp://ip:12377 . Nachdem Sie die Informationen eingegeben haben, warten Sie einen Moment und der Verbindungstest wird durchgeführt. Wenn die Verbindung erfolgreich ist, wird sie wie in der Abbildung oben angezeigt. 5. Springboot-Projektkonfiguration Docker-POM-Konfiguration Die aktuelle Projektverpackungsmethode des Bloggers ist ein JAR-Paket. Die Eigenschaftenkonfiguration in POM ist wie folgt

<Eigenschaften>
    <!--Legen Sie das Präfix des Docker-Images im Eigenschaftenknoten "springboot" fest -->
    <docker.image.prefix>springboot</docker.image.prefix>
</Eigenschaften>

Der Build ist wie folgt konfiguriert:

 <Bauen>
        <finalName>Docker-Demo</finalName>
        <Plugins>
            <Plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>Spring-Boot-Maven-Plugin</artifactId>
                <version>${spring-boot.version}</version>
            </plugin>
            <Plugin>
                <!-- Docker-Maven-Plugin -->
                <groupId>com.spotify</groupId>
                <artifactId>Docker-Maven-Plugin</artifactId>
                <version>1.0.0</version>
                <Konfiguration>
                    <dockerHost>http://ip:12377</dockerHost>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <Ressourcen>
                        <Ressource>
                            <Zielpfad>/</Zielpfad>
                            <Verzeichnis>${project.build.directory}</Verzeichnis>
                            <include>${project.build.finalName}.jar</include>
                        </Ressource>
                    </Ressourcen>
                </Konfiguration>
            </plugin>
        </plugins>
    </bauen>

resources dient zum Suchen des gepackten Jars, dockerDirectory zum Suchen Dockerfile und imageName ist der Image-Name

Erstellen Sie eine Docker-Datei (beachten Sie, dass die Docker-Datei kein Camel Case ist).
Die Struktur ist in der folgenden Abbildung dargestellt

Bildbeschreibung hier einfügen

Inhalt der Dockerfile-Datei:

FROM williamyeh/java8 # Die Quelle kann mit Docker Search Java8 durchsucht werden. VOLUME /tmp
ADD docker-demo.jar /app/docker-demo.jar
#KOPIEREN target/demo-0.0.1-SNAPSHOT.jar app.jar
EINSTIEGSPUNKT ["java", "-jar", "/app/docker-demo.jar"]

FROM : gibt das Basisimage an, muss der erste Befehl sein
VOLUME : wird verwendet, um ein persistentes Verzeichnis anzugeben
ADD : Fügt dem Container lokale Dateien hinzu. Tar-Dateien werden automatisch dekomprimiert (netzwerkkomprimierte Ressourcen werden nicht dekomprimiert). Auf Netzwerkressourcen kann zugegriffen werden, ähnlich wie bei wget
ENTRYPOINT : Konfigurieren Sie den Container, um ihn ausführbar zu machen

Sie können selbst nach weiteren Anweisungen suchen

  • Bisher wurde die erforderliche Konfiguration abgeschlossen und dann gestartet
  • Suchen Sie das Maven-Fenster auf der rechten Seite der Idee und führen Sie es sauber aus

Bildbeschreibung hier einfügen

Nachdem die Bereinigung abgeschlossen ist, führen Sie Paket für Paket aus

Bildbeschreibung hier einfügen

Führen Sie dann docker:build wie in der Abbildung gezeigt aus

Bildbeschreibung hier einfügen

Bei diesem Vorgang wird im Zielverzeichnis ein Docker -Ordner erstellt und die Dockerfile -Datei und das generierte JAR-Paket kopiert. Anschließend wird gemäß der Konfiguration im Dockerfile das Basisimage abgerufen, das JAR an den angegebenen Speicherort auf dem Server übertragen und anschließend das Image erstellt. Klicken Sie nach BUILD SUCCESS auf Services am Ende der Idee

Bildbeschreibung hier einfügen

Das Fenster sieht wie folgt aus

Bildbeschreibung hier einfügen

Doppelklicken Sie auf Docker, um eine Verbindung herzustellen. Nachdem die Verbindung erfolgreich hergestellt wurde, können wir den Ausführungsstatus des Images und des Containers sehen:

Bildbeschreibung hier einfügen

Anschließend können Sie mit der rechten Maustaste auf das Bild springboot/**:latest klicken, um einen Container zu erstellen

Bildbeschreibung hier einfügen

Die Option „Erstellen“ wird angezeigt, um die Konfiguration zu erstellen

Bildbeschreibung hier einfügen

Konfigurieren Sie den Containernamen und die Ausführungsoptionen und klicken Sie abschließend auf „Ausführen“, um den Container auszuführen. Im Fenster „Dienste“ können wir das laufende Protokoll des Containers sehen:

Bildbeschreibung hier einfügen

Bisher wurde die Idee, Docker zu integrieren, um Springboot-Anwendungen schnell bereitzustellen, abgeschlossen. Ich werde die Verwendung von Jenkins + K8s + Docker später zusammenfassen.

Dies ist das Ende dieses Artikels über die schnelle Bereitstellung von Springboot-Anwendungen mit Docker-Ideenintegration. Weitere verwandte Inhalte zu Docker-Bereitstellung und Springboot finden Sie in den vorherigen Artikeln von 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 SpringBoot-Integration von Docker
  • Einführung in die schnelle Docker-Bereitstellung eines SpringBoot-Projekts

<<:  Die 10 klassischen Optimierungsfälle und -szenarien von MySQL

>>:  Rückblick auf die besten Webdesign-Arbeiten 2012 [Teil 1]

Artikel empfehlen

Eine kurze Diskussion über Shallow Copy und Deep Copy in JavaScript

Inhaltsverzeichnis 1. Direkte Zuordnung 2. Oberfl...

So installieren Sie Redis5.0.3 im Docker

1. Ziehen Sie das offizielle 5.0.3-Image [root@lo...

Detaillierte Erklärung von MySQL Explain

Bei unserer täglichen Arbeit führen wir manchmal ...

Tiefgreifendes Verständnis der MySQL-Selbstverbindung und Join-Assoziation

1. MySQL-Selbstverbindung MySQL muss beim Abfrage...

So erstellen Sie eine TAR-Datei von WSL über Docker

Ich habe kürzlich mit der Remote-Entwicklungsfunk...

HTML+CSS zum Erstellen einer Schaltfläche im Cyberpunk-Stil

Erster Blick auf die Wirkung: Vorwort: Auf diese ...

Vue implementiert Benutzeranmeldung und Token-Verifizierung

Im Falle einer vollständigen Trennung von Front-E...

Detaillierte Erläuterung des Ausführungsprozesses der JavaScript-Engine V8

Inhaltsverzeichnis 1. V8-Quelle 2. V8-Serviceziel...

SQL IDENTITY_INSERT-Fallstudie

Wenn eine Spalte in einer Datentabelle einmal als...

Analyse der gemeinsamen Indexfunktion von MySQL und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...