EinführungDerzeit 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-Installationcurl -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-RemotezugriffsportBearbeiten 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-UmgebungDie 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 konfigurierenKonfigurieren der Betriebsumgebung Erstellen Sie einen TCP-Verbindungsdienst 3. Konfigurieren Sie die in Docker veröffentlichten Dienste Detaillierte Konfiguration der IP-Bindungsports Paketfreigabe Tipps1. 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:
|
<<: Zusammenfassung gängiger Fehler beim Entwurf von MySQL-Tabellen
>>: Drei gängige Stilselektoren in HTML-CSS
Zweitens hängt das Ranking von Schlüsselwörtern au...
Datenbankdaten exportieren: Öffnen Sie zuerst cmd...
<br />Die Farbe einer Webseite ist entscheid...
Dieser Artikel veranschaulicht anhand von Beispie...
Beispiel: <html> <Kopf> <style typ...
Der Weg vor uns ist lang und beschwerlich, aber i...
Grundlegende Konzepte Absolute Positionierung: Ei...
Datenträgerbezeichnung, Eigenschaftsname, Beschre...
Der Zweck des Schreibens von Skripten besteht dar...
Die erste Methode: Docker-Installation 1. Ziehen ...
Beim Erstellen einer Homepage, beispielsweise ein...
Korrespondenz zwischen Flutter und CSS im Shadow-...
Vorwort Alle Hardwaregeräte im Linux-System werde...
1. Einleitung Wenn die Datenmenge in der Datenban...
Vertieftes Verständnis davon in Js JavaScript Ber...