1. Einführung in Docker
Docker ist eine Open -Source -Anwendungscontainer -Engine, mit der Entwickler ihre Anwendungen und Abhängigkeiten in einen tragbaren Container verpacken und anschließend an einer beliebten Linux -Maschine veröffentlichen oder virtualisiert werden können. Behälter verwenden den Sandbox -Mechanismus vollständig und es wird keine Schnittstelle zwischen ihnen geben. Docker Image ist eine Lösung zum Ausführen von Containerprozessen. In diesem Artikel erstellen wir eine einfache Spring -Boot -Anwendung.
2. Umweltkonstruktion
JDK 1.8+
Maven 3.0+
Docker Neueste Version.
3. Erstellen Sie ein Projekt mit Maven
3.1 Erstellen Sie eine Verzeichnisstruktur
Mkdir -p Src/Main/Java/com/lidong/Demo
In Linux- oder Mac -Systemen.
3.2 Erstellen Sie eine pom.xml -Datei
<? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lidong.demo</groupId> <artifactId> lidong-pring-boot-Demo </artifactId> <version> 1.0-Snapshot </Version> <in <Strups> <gruppe> org.springFramework <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <docker.image.prefix>springio</docker.image.prefix> </properties> <depeopcies> <depeopecy> <GroupId> org.springFramework.boot </GroupId> <artifactId> Spring-Boot-Starter-Web </artifactId> </abhängig> <Eppecing> <GroupId> org.spingFramework <Scope> test </scope> </abhängig> <abhängigkeit> <gruppe> org.springFramework <artifactid> Spring-Boot-Maven-Plugin </artifactId> </plugin> <plugin> <gruppe> com.spotify </Groupid> <artifactid> docer-maven-plugin </artifactid> <version> 0.4 <FileName> $ {docker.image.prefix}/$ {project.artifactid} </imageename> <dockerDirectory> src/main/docer </dockerDirectory> <ressourcen> <ressourcen> <dargetPath> </</targetPath> <Rection. <Clycloy> $ {project.build.FININNAME} .jar </include> </ressourcen> </ressourcen> </configuration> </plugin> </plugins> </build> </project>Beachten:
FRIND SOT STOOF MAven Plugin bietet viele bequeme Funktionen:
1) Es sammelt alle JAR -Dateien auf dem Klassenpfad und baut in ein einzelnes, runnable Glas auf, was es bequemer macht, Dienste auszuführen und zu übertragen.
2) Es sucht nach der Methode für öffentliche statische void main (), um als laufbare Klasse zu markieren.
3) Es bietet einen integrierten Abhängigkeits-Parser für die Einstellung der Versionsnummer für die Abhängigkeiten von Spring Boot. Sie können jede gewünschte Version überschreiben, aber sie wird standardmäßig standardmäßig
Ausgewählte Versionssatz von Boot.
Das Docker-Maven-Plugin-Plugin von Spotify ist ein Docker-Bild, das zum Erstellen von Maven verwendet wird
1) ImageName gibt den Namen des Bildes an. Dieses Beispiel ist Springio/Lidong-Spring-Boot-Demo
2) DockerDirectory gibt den Ort der Dockerfile an
3) Ressourcen beziehen sich auf Dateien, die mit Dockerfile zusammengestellt und beim Erstellen von Bildern verwendet werden müssen. Im Allgemeinen müssen Anwendungsglasspakete enthalten sein.
4. Schreiben Sie die erste Spring -Startanwendung
Schreiben Sie eine einfache Spring -Boot -Anwendung:
src/main/java/com/lidong/Demo/samplecontroller.java:
paket com.lidong.demo; import org.springframework.boot.springapplication; import org.springframework.boot.autoconFigure.springbootApplication; Import org.springFramework.steotype.Controller; org.springFramework.web.bind.annotation.ResponseBody;/** * @project Name: Lidong-Dubbo * @Class Name: SampleController * @Class Beschreibung: * @Author: Lidong * @creation time: 2017/19 9:34 am * @Chnany: Chni * @creation time: 2017/19 9:34 am * @company: chni * @creation time: 2017/19 9:34 am * @company: chni * @creation time: 2017/19 9:34 am * @company: chni * @creation time: 1561281670 @company: chni * @QQQ: 1561281670 AM * @Chrany: Chni * @QQQ: 1561281670 AM * @Chrany. @Email: [email protected] */ @Controller @SpringBootApplicationPublic Class SampleController {@ResponseBody @RequestMapping (value = "/") String home () {return "Hello Docker World"; } public static void main (String [] args) {SpringApplication.run (SampleController.class, "-Server.port = 8081"); }}
Die Klasse wird von @springbootApplication @restController identifiziert und kann verwendet werden, um Webanforderungen mit Spring MVC zu bearbeiten.
@RequestMapping Map / nach Home () und antworten Sie mit "Hallo Docker World".
Die Main () -Methode verwendet die Spring -Boot -Methode von SpringApplication.run (), um die Anwendung zu starten.
5. Führen Sie das Programm aus
5.1 Verwenden Sie den Befehl maven
MVN -Paket
laufen:
Java-Jar Target/Lidong-Spring-Boot-Demo-1.0-Snapshot.jar
Besuchen Sie das Projekt
Wenn das Programm korrekt ausgeführt wird, besucht der Browser http: // localhost: 8081/und Sie können die Wörter "Hallo Docker World" sehen. Auf der Seite.
5.2 Verwenden von Ideen-Plug-In
6. Container Das Projekt
Docker verwendet das Dockerfile -Dateiformat, um die Bildebene anzugeben.
Erstellen Sie die Datei SRC/Main/Docker/Dockerfile:
Aus Frolvlad /Alpine-Oraclejdk8: Slimvolume /tmpadd lidong-pring-boot-demo-1.0-snapshot.jar app.jarrun sh -c 'touch /app.jar'env java_opts = "Entrypoint [" sh "," -c "," java $ java $ java_opts "," -C "," java $ java $ java_opts ["sh", "-C", "java $ java $ java_opts [" sh "," -C "," java $ java $ java_opts ","-"," java $ java $ java_opts ["sh", "-c", "java $ java_opts -Djava.security.egd = Datei:/dev /./ urandom -jar /app.jar "]
Erläutern Sie diese Konfigurationsdatei:
Das Volumen gibt das temporäre Dateiverzeichnis als /tmp an. Der Effekt besteht darin, eine temporäre Datei im Host /var /lib /docker -Verzeichnis zu erstellen und mit dem Container /TMP zu verknüpfen. Die Änderungsschritte sind optional und es ist erforderlich, wenn es sich um die Anwendung des Dateisystems handelt. Das /TMP -Verzeichnis wird verwendet, um in den Docker -Datenordner zu bestehen, da der vom Spring Boot /TMP verwendete eingebettete Tomcat -Container standardmäßig als Arbeitsverzeichnis verwendet wird.
Die JAR -Datei des Projekts wird dem Container hinzugefügt
Einstiegspunkte execute project app.jar. Fügen Sie eine Systemeigenschaft hinzu, um die Tomcat -Startzeit zu verkürzen, um "/dev/urandom" als Entropiequelle zu verweisen
Bauen Sie das Docker -Bild
Führen Sie den Build aus, um Docker -Bild zu werden:
MVN -Paket Docker: Build
laufen
Führen Sie das Docker -Bild aus
Docker Run -P 8081: 8081 -t Springio/Lidong-Spring-Boot-Demo
Siehe dieses Frühlings -Symbol. Ich dachte, wir haben das Spring Boot -Programm auf Docker abgeschlossen.
Gehen Sie als nächstes zum Browser und besuchen Sie http: // localhost: 8081/, und Sie können die Worte "Hallo Docker World" sehen. Auf der Seite.
Zusammenfassen
Die oben genannte Spring -Boot -Anwendung, die Ihnen vom Editor vorgestellt wurde. Die Spring -Boot -Anwendung wird über Docker erstellt, ausgeführt und veröffentlicht. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!