In jüngster Zeit ist Containerisierung zu einem Trend geworden. Ein Server kann mehrere Container virtualisieren und gleichzeitig Dienste bereitstellen, Hardwareressourcen teilen und Kosten sparen. Der Leiter in Containerisierung ist Docker. Alle Microservices -Veröffentlichungen in unserem Unternehmen wurden containerisiert. Spring Boot folgt auch dem Trend und fügt das Maven-Plug-In von Docker hinzu, das Bilder erstellen kann, indem Befehle ausgeführt werden.
Der Hauptinhalt dieses Abschnitts betrifft nicht Code, sondern um dieses Docker -Plugin. Ohne weiteres zu Pom gehen
<plugin> <gruppe> com.spotify </Groupid> <artifactId> Docker-maven-plugin </artifactId> <version> 0.4.12 </Version> <Konfiguration> <! https://github.com/spotify/docker-maven-plugin ungültiger Repository-Name ... Nur [a-z0-9-_.] sind erlaubt-> <imaginame> Spring-Boot-Docker-Start </bildname> <!-Gleichivalent zu java, lokales Bild wird local verwendet, wenn nicht. <!-Port 8080 im Container enthüllen-> <expose> 8080 </expose> </exponiert> <!-Punkt, Befehl eingeben-> <eintragspunkte> ["java", "-jar", "/$ {project.build.finalName} .jar"] </Eintragung> <Resource> <ressourcen> < <Directory> $ {project.build.directory} </directory> <closas> $ {project.build.finalName} .jar </include> </ressourcen> </ressourcen> </configuration> </plugin> ImageName ist der Name des Bildes. BasisImage ist das Grundbild. Wenn es ein lokales Bild gibt, falls nicht, ziehen Sie es aus dem Remote -Repository, setzen Sie Port 8080 im Container aus, führen Sie den Befehl java -jar aus und starten Sie den MicroService. Wir wissen, dass die Verwendung von Docker eine Dockerfile -Datei erstellt und die Elemente darin vollständig über die Maven -Plugin -Tags reflektiert werden. Es gibt immer noch eine Voraussetzung, Sie müssen zuerst Docker installieren. Zu diesem Zeitpunkt beginnen wir zu laufen
Schritt 1: Führen Sie MVN Clean Package Docker aus: Erstellen Sie, um ein generiertes Bild zu erstellen.
Schritt 2: Starten Sie den Mirror Docker Run -it -p Spring-Boot-Docker-Start und überprüfen Sie die Protokolle im Container
➜ Spring-Boot-Docker-Start Git: (Master) Docker Run -it -p Spring-Boot-Docker-Start. ____ _ __ _ /// ___'_ __ _ _ (_) _ __ _ / / / / () / ___ | '_ |' _ | / / / ` / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | .__ | | _ | | _ | | _/__, | / / / / / ============================================ ___ / = / _ / _ / :: fing boot :: (v1.3.5.Release) 2018-03-25 08: 41: 56.274 Info 1-[Main ApplicationMain unter 075543f8f5b6 mit PID 1 ( /Spring-Boot-Docker-Start.Jar Start von Root IN /) 2018-03-25 08: 41: 56.287 Info 1 --- [Main] Com.shuqi.ApplicationMain: No Active Profile Set, FALL BATT BATT BATT BATT BATT BATT BATT BATT BATT BATT BATT BATT BATT RUF DEFAULTE DER DEFAULT: 41: 41: 56: 56: 41: 56: 41: 41: 408: 41: 41: 56. . Wurzel des Kontexteshierarchy2018-03-25 08: 41: 58.356 Info 1 --- [Main] sbcettomcatembededServletContainer: Tomcat initialisiert mit Port (s): 8080 (http) 2018-03-25 08: 41: 58.382 Info 1 --- [Main] O.APache.Catala.CORE.CORE.CORE.CORE.CORE.S. Startdienst Tomcat2018-03-25 08: 41: 58.384 Info 1 --- [Main] org.apache.catalina.Core.StandardenEngine: Servlet Engine: Apache Tomcat/8,0.322018-03-25 08: 41: 58.512 Info 1--[Ost-StartStop-1]. : Initialisieren von Frühlingseingebant-WebanapplicationContext2018-03-25 08: 41: 58.512 Info 1 --- [Ost-StartStop-1] OSWeb.Context.Contextloader: Root WebApplicationContext: Initialisierung in 2113 MS2018-03-25 08: 41: 58.920 Info 1 --- [OststOp-1] osbcembedded.FilterRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]2018-03-25 08:41:58.928 INFO 1 --- [ost-startStop-1] osbcembedded.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]2018-03-25 08:41:58.937 INFO 1 --- [ost-startstop-1] osbcembedded.filterregistrationBean: Mapping-Filter: 'HiddenhttpMethodFilter' An: [/*] 2018-03-25 08: 41: 58.937 Info 1-[Ost-StartStop-1] Osbcembed. 'httpPutFormContentFilter' to: [/*]2018-03-25 08:41:58.938 INFO 1 --- [ost-startStop-1] osbcembedded.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]2018-03-25 08:41:59.406 INFO 1 --- [ main] swsmmarequestmapPingHandlerAdapter: Auf der Suche nach @ControllerAdvice: org.springframework.boot.context.embeded.AnnotationConFigembeddedwebapplicationContext@126d28d3: Start -up -Datum [Sun Mar 25:41:56 UTC 2018]; root of context hierarchy2018-03-25 08:41:59.516 INFO 1 --- [ main] swsmmaRequestMappingHandlerMapping : Mapped "{[/hello],methods=[GET]}" onto public java.lang.String com.shuqi.controller.HelloController.hello()2018-03-25 08: 41: 59.523 Info 1 --- [Main] swsmmarequestmapingHandlermaping: zugeordnet "{[/errungen], produziert = [text/html]}" auf public org.springframework.web.Servlet.ModelandViewView. org.springframework.boot.autoconfigure.web.basicerrorController.Errorhtml (javax.servlet.http.httpServletRequest, Javax.Servlet.http.httpserDretresponse) 2018-03-25 08: 41: 41: 41: 59.524 1- [Main) 2018-03-25 08: 41: 41: 59.524 1- [Main) 2018-03-25 08: 41: 41: 41: 59.524 1, [Main) 2018-03-25 08: 41: 41: 59.524 1, [Main) 2018-03-25 08: 41: 41: 59.524 1- [Mains swsmmarequestmapingHandlermaping: zugeordnet "{[/errungen]}" auf public org.springframework.http.ResponseEntity <java.util.map <java.lang.string, java.lang.object >>> org.springframework.boot.autoconfigure.web.basicerrorController.Error (javax.servlet.http.httpServletRequest) 2018-03-25 08: 41: 59.584 info 1- Handler vom Typ [Klasse org.springframework.web.servlet.resource.resourcehttprequestHandler] 2018-03-25 08: 41: 59.585 info 1 --- [Haupt] oswshandler.simpleurlhandLmapping: Kartenteilung: Kartenteils: Kartenteils appr path [/**] auf Handler von Typ [Classmapping [Classmapping) [klassifal org.springframework.web.servlet.resource.resourcehttprequestHandler] 2018-03-25 08: 41: 59.645 Info 1 --- [Main] oswshandler.simpleurlhandlermapping: Bepemed URL Path [/* org.springframework.web.servlet.resource.ResourceHttpRequestHandler]2018-03-25 08:41:59.754 INFO 1 --- [ main] osjeaAnnotationMBeanExporter : Registering beans for JMX exposure on startup2018-03-25 08:41:59.834 INFO 1 --- [ main] sbcettomcatembeddedServletContainer: Tomcat begann mit Port (s): 8080 (http) 2018-03-25 08: 41: 59.838 Info 1 --- [Haupt] com.shuqi.ApplicationMain: Anwendungsmain in 4.084 Seconds (JVM). Begann erfolgreich.
Schritt 3: Geben Sie Docker PS ein, um zu sehen, welcher Port 8080 im Container dem lokalen Port zugeordnet ist
Befehl Container-ID-Bild erstellt Statusports Namen 0755543f8f5b6 Spring-Boot-Docker-Start "Java-Jar /Spring ..." vor ungefähr einer Minute zu einer Minute 0.0.0.0:32768->8080/tcp Trusting_noether
Es wird sicher Port 32768 sein.
Schritt 4: Geben Sie http: // localhost: 32768/Hallo im Browser ein und sehen Sie die Ergebnisse
Dies bedeutet, dass wir erfolgreich auf das Programm im Container zugegriffen haben!
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.