Centos8.3, Docker-Bereitstellung, Springboot-Projekt, tatsächliche Fallanalyse

Centos8.3, Docker-Bereitstellung, Springboot-Projekt, tatsächliche Fallanalyse

Einführung

Derzeit ist k8s sehr beliebt und ich habe mir ein Buch gekauft, um mehr darüber zu erfahren. Allerdings erfordert k8s den Betrieb und die Wartung von Hunderten oder sogar Tausenden von Servern. Für Anwendungen mit nur wenigen Servern ist die Verwendung von k8s ein bisschen so, als würde man mit einer Kanone eine Mücke töten. Der Betrieb und die Wartung von Anwendungen mit nur wenigen Servern unter Verwendung der herkömmlichen Tomcat-Bereitstellung ist umständlich und ineffizient. Die Bereitstellung eines Dienstes dauert mehr als zehn Minuten. Die Verwendung von Jenkins für die Bereitstellung ist zu kompliziert. Nach langem Überlegen habe ich mich für die Bereitstellung mit Docker+DockerFile entschieden. Diese Bereitstellungsmethode ist einfach und effizient.

Docker-Installation

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #Installationsskript mit einem Klick systemctl enable docker.service #Docker zum Starten einrichten systemctl restart docker.service #Docker-Dienst starten

Öffnen Sie den Docker-Remotezugriffsport

Bearbeiten Sie die Datei /usr/lib/systemd/system/docker.service und fügen Sie -Htcp://0.0.0.0:12375 -H unix://var/run/docker.sock wie unten gezeigt hinzu:

Speichern Sie die Datei, laden Sie die Konfiguration neu und starten Sie neu

systemctl daemon-reload # Konfiguration neu laden systemctl restart docker.service # Docker-Dienst neu starten

Hinweis: -Htcp://0.0.0.0:12375 bedeutet, dass jede IP-Adresse TCP verwenden kann, um auf diesen Port zuzugreifen. Sie können die IP-Adresse je nach tatsächlicher Situation abgleichen. Da hier weder Token noch Schlüssel vorhanden sind, seien Sie besonders vorsichtig. Wenn Sie einen Cloud-Server verwenden, wird dringend empfohlen, ihn auf den IP-Whitelist-Zugriff der Sicherheitsgruppe einzustellen. Ich wurde innerhalb von drei oder vier Stunden angegriffen, nachdem ich Docker zum Veröffentlichen in einer Testumgebung verwendet hatte. Allerdings habe ich Port 2375 verwendet, der besonders anfällig für Angriffe ist.

Konfigurieren Sie die IDEAdocker-Umgebung

Die Idee zur Installation des Docker-Umgebungs-Plugins ist wie folgt:

Nachdem die Installation abgeschlossen ist, starten Sie Idea neu, öffnen Sie das Springboot-Projekt und erstellen Sie eine Dockerfile-Datei im Stammverzeichnis. Wie unten dargestellt:

Bearbeiten Sie das Dockerfile wie folgt:

VON openjdk:11
# Das Bild wird von openjdk:11-jdk-alpin VOLUME /root/tmp übernommen
# Gibt an, dass das Verzeichnis /root/tmp im Container ADD build/libs/brief-plus-0.0.1-SNAPSHOT.jar apprun.jar gemountet ist.
# Fügen Sie bootJar zum Image hinzu. Der Befehl im Stammverzeichnis lautet apprun.jar
 
EINSTIEGSPUNKT ["java","-jar","/apprun.jar"]
#ENTRYPOINT Führen Sie den Java-Befehl aus, um das Programm auszuführen, nachdem der Container gestartet wurde. # Stellen Sie die Containerzeit ein ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# ======= Einige andere Dockerfile-Befehle ========== Wir verwenden sie hier nicht, erwähnen sie aber trotzdem #COPY package.json /usr/src/app/
#ADD Erweiterter Kopiervorgang. Der #ADD-Befehl und das COPY-Format sowie die Art und Weise, wie sie funktionieren, sind grundsätzlich identisch. Es werden jedoch einige Funktionen basierend auf COPY hinzugefügt.
Mit der Anweisung #CMD wird der Standardstartbefehl des Container-Hauptprozesses angegeben.
#ENV setzt Umgebungsvariablen #HEALTHCHECK Integritätsprüfung #EXPOSE Die Anweisung deklariert den Service-Port, der vom Laufzeitcontainer bereitgestellt wird. Dies ist nur eine Deklaration. Die Anwendung wird den Service dieses Ports aufgrund dieser Deklaration zur Laufzeit nicht öffnen EXPOSE 8090

Achten Sie besonders auf den Satz build/libs/brief-plus-0.0.1-SNAPSHOT.jar apprun.jar. Die von Gradle kompilierten Dateien befinden sich im Verzeichnis build/libs/, wie unten gezeigt:

Die von Maven kompilierten Dateien befinden sich wie unten gezeigt im Zielverzeichnis:

Dockerfile generiert die Image-Datei basierend auf dem spezifischen Verzeichnis und dem gepackten Namen, daher dürfen hier keine Fehler auftreten.

Docker-Dienst konfigurieren

Konfigurieren der Betriebsumgebung

Erstellen Sie einen TCP-Verbindungsdienst

3. Konfigurieren Sie die in Docker veröffentlichten Dienste

Detaillierte Konfiguration der IP-Bindungsports

Paketfreigabe

Tipps

1. Die Docker-Image-Datei wird in Blöcke aufgeteilt, jeder mit einer eigenen Signatur. Bei jedem Hochladen werden die Unterschiede verglichen und die Dateien erneut hochgeladen.

2. Denken Sie daran, das Tag bei jedem Hochladen zu ändern, sodass Sie basierend auf dem Tag ein Rollback durchführen können.

3. Das Ändern der Netzwerkkonfiguration und der Firewall des Servers erfordert einen Neustart des Docker-Dienstes.

Allgemeine Docker-Befehle:

Starten Sie Docker neu

systemctl restart docker # Starten Sie den Docker-Dienst neu systemctl daemon-reload # Laden Sie die Docker-Konfiguration neu

Protokolle innerhalb von 30 Minuten anzeigen

Docker-Protokolle – seit 30 Minuten ID

Oben finden Sie den detaillierten Inhalt des tatsächlichen Datensatzes von Centos8.3 und der Docker-Bereitstellung des Springboot-Projekts. Weitere Informationen zur Docker-Bereitstellung des Springboot-Projekts finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Bereitstellen von SpringBoot-Projekten mit Docker in Idea
  • So stellen Sie ein SpringBoot-Projekt mit Docker bereit
  • So stellen Sie ein SpringBoot-Projekt mit Dockerfile bereit
  • Die Lösung für das Springboot-Projekt, um ein War-Package-Docker-Paket zu erstellen und keine statischen Ressourcen unter der Ressource zu finden
  • Detaillierte Erläuterung der Docker-Bereitstellungspraxis des Springboot-Projekts

<<:  Zusammenfassung gängiger Fehler beim Entwurf von MySQL-Tabellen

>>:  Drei gängige Stilselektoren in HTML-CSS

Artikel empfehlen

Sechs Tipps zur Verbesserung der Ladegeschwindigkeit von Webseiten

Zweitens hängt das Ranking von Schlüsselwörtern au...

Zusammenfassung der MySql-Import- und Exportmethoden mit mysqldump

Datenbankdaten exportieren: Öffnen Sie zuerst cmd...

Webseiten-Erlebnis: Farbabstimmung für Webseiten

<br />Die Farbe einer Webseite ist entscheid...

Analyse der MySQL-Ansichtsfunktionen und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

HTML-Grammatik-Enzyklopädie_HTML-Sprachgrammatik-Enzyklopädie (unbedingt lesen)

Datenträgerbezeichnung, Eigenschaftsname, Beschre...

Zwei Möglichkeiten zum Erstellen eines privaten GitLab mit Docker

Die erste Methode: Docker-Installation 1. Ziehen ...

CSS realisiert die Realisierung der Hintergrundbild-Bildschirmanpassung

Beim Erstellen einer Homepage, beispielsweise ein...

Layout im Vue.js-Stil Allgemeine Fähigkeiten zur Flutter-Geschäftsentwicklung

Korrespondenz zwischen Flutter und CSS im Shadow-...

Ein Artikel zum Verständnis von Linux-Festplatten und Festplattenpartitionen

Vorwort Alle Hardwaregeräte im Linux-System werde...

Vertieftes Verständnis davon in JavaScript

Vertieftes Verständnis davon in Js JavaScript Ber...