Informationen zur Installation und Verwendung von Docker finden Sie in den beiden vorherigen Artikeln. Details zur Installation und Bereitstellung des Docker Kubernetes-Dashboards und wie Docker Links verwendet, um Verbindungen zwischen Containern herzustellen. Dieser Artikel stellt hauptsächlich vor, wie das Springboot-Projekt auf Docker bereitgestellt wird. Weitere Informationen zum Erstellen eines Springboot-Projekts finden Sie in diesem Artikel: Probleme beim Erstellen eines SpringBoot-Web-MVC-Projekts auf IDEA In diesem Artikel werden hauptsächlich drei Möglichkeiten zum Bereitstellen von Springboot mit Docker vorgestellt, nämlich: Erste Schritte, Bereitstellung durch Ersetzen von JAR-Paketen und Skriptbereitstellung, Schritt-für-Schritt-Anleitung. Bitte beachten Sie, dass die Namen dieser drei Methoden meine eigenen und inoffiziell sind. ProjektverzeichnisDocker-DateiErstellen Sie eine Dockerfile-Datei, die später verwendet wird. # Docker-Image für Springboot-Datei ausführen # VERSION 0.0.1 # Autor: toutou # Das Basis-Image verwendet Java VON java:8 # VOLUME gibt das temporäre Dateiverzeichnis als /tmp an. # Der Effekt besteht darin, eine temporäre Datei im Verzeichnis /var/lib/docker des Hosts zu erstellen und sie mit dem Verzeichnis /tmp des Containers zu verknüpfen. # VOLUMEN /tmp # Fügen Sie das JAR-Paket zum Container hinzu und benennen Sie es in app.jar um ADD learn-web-0.0.1-SNAPSHOT.jar app.jar # Führen Sie das JAR-Paket aus. RUN bash -c 'touch /app.jar' EINSTIEGSPUNKT ["java","-jar","/app.jar"] ###Geben Sie die Start-Portnummer an#EXPOSE 8301 DateibereitstellungErstellen Sie auf dem Server einen neuen Ordner /data/docker/hellolearn (der Dateipfad kann angepasst werden) und kopieren Sie das von Maven gepackte JAR und die oben erstellte Dockerfile-Datei in den neuen Ordner auf dem Server (/data/docker/hellolearn). Bild generieren
docker build -t Imagename: Die relative Position des Dockerfile-Tags. Der Punkt stellt das aktuelle Verzeichnis dar. Wenn das Tag nicht geschrieben ist, wird standardmäßig „latest“ verwendet. Starten des Containers
Der Parameter -d dient zum Ausführen des Containers im Hintergrund; --name ist der Name des angegebenen Containers; -p dient zum Port-Mapping. In diesem Fall wird der Port 8301 im Server (der Port vor dem Doppelpunkt) dem Port 8301 im Container (der Port nach dem Doppelpunkt) zugeordnet (application.properties ist mit 8301 konfiguriert). Besuchen Sie die WebsiteBereitstellung der JAR-PaketzuordnungWenn Sie die oben genannten Schritte befolgen, können Sie den gesamten Prozess der Docker-Bereitstellung im Springboot problemlos durchführen. Allerdings müssen Sie nach dem Starten des Containers jedes Mal, wenn Sie das JAR-Paket aktualisieren müssen, das Image und dann den Container neu erstellen. Der Prozess ist äußerst umständlich und ineffizient. Wie können wir also das JAR-Paket direkt aktualisieren, um die Bereitstellung abzuschließen, ohne das Image oder den Container zu aktualisieren? 5.1 Dockerfile aktualisieren # Docker-Image für Springboot-Datei ausführen # VERSION 0.0.1 # Autor: toutou # Das Basis-Image verwendet Java VON java:8 EXPOSE 8301 EINSTIEGSPUNKT ["java","-jar","/data/learn-web-0.0.1-SNAPSHOT.jar"] Die letzte Zeile 5.2 Erstellen Sie ein Image mit dem Befehl „Docker Build“
5.3 Container erstellen & starten
-v Verknüpfen Sie das Hostverzeichnis mit dem Containerverzeichnis. Auf diese Weise wird das Verzeichnis /data/docker/newhellolearn/package des Hosts dem Verzeichnis /data des Dockers zugeordnet. In diesem Fall können Sie bei einer Änderung des JAR-Pakets das JAR-Paket direkt im Verzeichnis /data/docker/newhellolearn/package des Hosts aktualisieren. Nach der Aktualisierung des JAR-Pakets müssen Sie den Container neu starten. SkriptbereitstellungBei der Bereitstellung über die JAR-Paketmethode tritt ein Problem auf, wenn sich der Name des JAR-Pakets ändert, beispielsweise wenn sich die Versionsnummer ändert (learn-web-0.0.1-SNAPSHOT.jar-->>learn-web-1.0.1-SNAPSHOT.jar). Was ist zu tun? Im Folgenden wird die dritte Bereitstellungsmethode über Skripte vorgestellt. 6.1 Datei „hellolearn.sh“ erstellen
Laden Sie hellolearn.sh nach /data/docker/hellolearn/scriptdeploy/package hoch. Dieser Ordnerpfad kann angepasst werden. Merken Sie sich diesen Ordnerpfad, da er später verwendet wird. 6.2 Berechtigungen zur Skriptausführung hinzufügen
6.3 Dockerfile erstellen # Docker-Image für Springboot-Datei ausführen # VERSION 0.0.1 # Autor: toutou # Das Basis-Image verwendet Java VON java:8 EXPOSE 8301 CMD ["sh","-c","/data/hellolearn.sh"] Beachten Sie, dass der letzte Befehl im obigen Text ENTRYPOINT ist, der bei der Skriptbereitstellung in CMD geändert wird. Wenn Sie an den spezifischen Unterschieden zwischen ENTRYPOINT und CMD interessiert sind, können Sie sich darüber informieren. 6.4 JAR-Paket hochladen Legen Sie das JAR-Paket in dasselbe Ordnerverzeichnis wie hellolearn.sh, also /data/docker/hellolearn/scriptdeploy/package. Ordnen Sie beim Erstellen eines Containers das Verzeichnis (Hostverzeichnis) dem /data-Verzeichnis des Containers zu. . 6.5 Dateiverzeichnisstrukturdiagramm Ich weiß nicht, ob Sie die Verzeichnisstruktur hier verwirrt. Ich habe ein Verzeichnisstrukturdiagramm meiner Hostmaschine hochgeladen, das auf einen Blick klar ist. 6.6 Erstellen eines Images
Der Punkt am Ende stellt das aktuelle Verzeichnis dar, daher muss der Befehl zum Generieren des Images in dem Verzeichnis ausgeführt werden, in dem sich die Docker-Datei befindet. 6.7 Container erstellen und starten
Ordnen Sie das Verzeichnis /data/docker/hellolearn/scriptdeploy/package des Hosts dem Verzeichnis /data des Containers zu. Auf diese Weise können Sie bei Änderungen des JAR-Pakets das JAR-Paket direkt im Hostverzeichnis aktualisieren. Auch wenn sich der Name des JAR-Pakets ändert, müssen Sie das Skript hellolearn.sh aktualisieren. Starten Sie den Container nach dem Update neu. 6.8 Web-Testergebnisse Docker-Protokolle anzeigen
OPTIONS-Beschreibung:
7.1 Zeigen Sie die Protokolle nach der angegebenen Zeit an und zeigen Sie nur die letzten 100 Zeilen an:
7.2 Überprüfen Sie die Protokolle eines bestimmten Zeitraums
7.3 Zeigen Sie die Protokolle nach der angegebenen Zeit an:
7.4 Zeigen Sie die Protokolle der letzten 5 Minuten an:
7.5 Führen Sie Bash auf dem angegebenen Container über den Befehl „exec“ aus: 7.6 Docker-IP anzeigen
Aufgetretene ProblemeProblembeschreibung: Fehlerantwort vom Daemon: Treiber konnte externe Konnektivität am Endpunkt flamboyant_leavitt nicht programmieren (iptables ist fehlgeschlagen: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8301 -j DNAT --to-destination 172.17.0.2:8301 ! -i docker0: iptables: Keine Kette/Ziel/Übereinstimmung mit diesem Namen. Lösung: Starten Sie Docker neu. Weitere Informationen zu diesem spezifischen Problem finden Sie unter Fehlerantwort vom Daemon: Treiber konnte externe Konnektivität auf Endpunkt mysql3308 nicht programmieren ( Quellcodeadresse https://github.com/toutouge/javademosecond/tree/master/hellolearn Dies ist das Ende dieses Artikels zum Bereitstellen von SpringBoot in Docker und Ersetzen von JAR-Paketen. Weitere Informationen zum Bereitstellen von SpringBoot in Docker und Ersetzen von JAR-Paketen 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:
|
<<: WeChat-Applet implementiert SMS-Login in Aktion
>>: Tutorial zur HTML-Tabellenauszeichnung (5): Farbattribut für helle Rahmen BORDERCOLORLIGHT
Vererbung von Prototypketten Die Prototypenvererb...
Das Definieren des Datenfeldtyps in MySQL ist für...
Mysql Workbench ist ein Open-Source-Datenbankclie...
1. Die Bedeutung persistenter statistischer Infor...
In vertikaler Richtung können Sie die Ausrichtung...
Trigger können dazu führen, dass vor oder nach de...
Inhaltsverzeichnis 1. Geltungsbereich 2. Geltungs...
In diesem Artikel erfahren Sie, wie Sie mysql5.7....
Inhaltsverzeichnis 1. Datum 2. RegExp 3. Original...
Einführung in den Linux-Top-Befehl Der Befehl top...
Seitenbeschreibung: Hauptseite: Name —> shish...
Lösung: Beenden Sie alle mit .vscode in Zusammenh...
In diesem Artikel wird der spezifische Code von V...
Import: Aufgrund der Projektanforderungen werden ...
In diesem Artikel erfahren Sie, wie Sie mit Navic...