Ces derniers temps, la conteneurisation est devenue une tendance. Un serveur peut virtualiser plusieurs conteneurs et en même temps fournir des services, partager des ressources matérielles et économiser les coûts. Le leader de la conteneurisation est Docker. Toutes les versions de microservices dans notre entreprise ont été conteneurisées. Spring Boot suit également la tendance et ajoute le plug-in maven de Docker, qui peut créer des images en exécutant des commandes.
Le contenu principal de cette section ne concerne pas le code, mais sur ce plugin Docker. Sans plus tarder, allez à Pom
<flugin> <proupId> com.spotify </proupId> <Artifactid> docker-maven-Plugin </ artifactid> <version> 0.4.12 </-version> <fonfi configuration> <! - Notez que l'imagename doit se conformer à la [A-Z0-9- _.], sinon la construction ne sera pas réussie-> <! https://github.com/spotify/docker-maven-plugin Nom du référentiel invalide ... seulement [A-Z0-9-_] est autorisé -> <ImageName> Spring-Boot-Docker-Start </IMAMENAM <pose expose> <! - Exposez le port 8080 dans le conteneur -> <pose> 8080 </spose> </poseSoS> <! - Entrez Point, Command -> <EntryPoint> ["Java", "-jar", "/ $ {project.build.finalname} .jar"] </prenypoint> <salice> <esource> <TargetPath> / </ TargetPath> <Arnutory> $ {project.build.directory} </ Directory> <clut> $ {project.build.FinalName} .jar </rupd> </source> </ ressources> </FIGIGURATION> </ Plugin> ImageName est le nom de l'image. BaseImage est l'image de base. S'il y a une image locale, sinon, tirez-la du référentiel distant, exposez le port 8080 dans le conteneur, exécutez la commande java -jar et démarrez le microservice. Nous savons que l'utilisation de Docker nécessite la création d'un fichier dockerfile et que les éléments à l'intérieur sont complètement réfléchis via les balises de plugin maven. Il y a toujours une condition préalable, vous devez d'abord installer Docker. À ce stade, nous commençons à courir
Étape 1: Exécutez Docker du package MVN Clean: Build pour créer une image générée.
Étape 2: Démarrez le miroir docker run -it -it -p spring-boot-docker-start et vérifiez les journaux dans le conteneur
➜ Spring-boot-docker-start git: (maître) docker run -it -it spring-boot-docker-start. ____ _ __ _ /// ___'_ __ _ _ (_) _ __ __ _ / / / / / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | (_ | |))) .__ | | _ | | _ | | _ / __, | / / / / / / =========================================. ApplicationMain au 075543f8f5b6 avec PID 1 (/Spring-boot-docker-start.jar démarré par root dans /) 2018-03-25 08: 41: 56.287 Info 1 --- [Main] Com.shuqi.applicationmain: pas de profil actif Set, Retour aux profils par défaut 1. [Main] AtionConfigeMeddedWebApplicationContext: Rafourshing org.springframework.boot.context.embedded.annotationConfigembeddedwebapplicationContext@126d28d3: Date de démarrage [Sun 25 mars 08:41:56 UTC 2018]; Root of Context Hiérarchy2018-03-25 08: 41: 58.356 Info 1 --- [Main] SBCETTOMCATEMBEDDEDSERVletContainer: Tomcat initialisé avec le port (s): 8080 (HTTP) 2018-03-25 08: 41: 58.382 Info 1-- [Main] O.apache.catalina.Core.Standand Inforse Démarrage du service Tomcat2018-03-25 08: 41: 58.384 Info 1 --- [Main] org.apache.catalina.core.standardine: Moteur de servlet de départ: Apache Tomcat / 8.0.332018-03-25 08: 41: 58.512 Info 1 --- : Initialisation de Spring Embedded WebApplicationContext2018-03-25 08: 41: 58.512 Info 1 --- [Ost-StartStop-1] OSWEB.Context.ContextLoader: Root WebApplicationContex OSBCEMBEDDED.FilterRegistrationBean: Mapping Servlet: 'DispatterServlet' to [/] 2018-03-25 08: 41: 58.928 info 1 --- [Ost-StartStop-1] OSBCembedded.FilterRegistrationBean: Mapping Filter: 'CaractoDingFilter' to: [/ *] 2018-03-03 08: 41: 58.937 Info 1 --- [OST-StartStop-1] OSBCEMEDDED.FilterRegistrationBean: Mapping Filter: 'HiddenhttpMethodFilter' to: [/ *] 2018-03-25 08: 41: 58.937 info 1 --- [Ost-stop-1] Filtre: 'httputFormContentFilter' à: [/ *] 2018-03-25 08: 41: 58.938 Info 1 --- [Ost-StartStop-1] OSBCembedded.FilterRegistrationBean: Mapping Filter: 'Request ContextFilter' à: [/ *] 2018-03-25 08: 41: 59.406 Info 1-[PRINC swsmmarequestmappinghandleradapter: à la recherche de @ControllerAdvice: org.springframework.boot.context.embedded.annotationConfigembeddedwebapplicationContext@126d28d3: Date de démarrage [Sun 25 mars 08:41:56 UTC 2018]; Root of Context Hierarchy2018-03-25 08: 41: 59.516 info 1 --- [Main] swsmmarequestmappinghandlermapping: mapped "{[/ hello], méthodes = [get]}" sur public java.lang.string com.shuqi.contreller.helloconstroller.hello () 2018-03-15 08: 41: 59.523 info 1 --- [Main] swsmmarequestmappinghandlermapping: mappé "{[/ error], produit = [text / html]}" sur public org.springframework.web.servlet.modelandViewView org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpservletRequest, javax.servlet.http.httpservletRequest) 2018-03-25 08: 41: 59.524 info 1 - [Main] swsmmarequestmappinghandlermapping: mappé "{[/ error]}" sur public org.springframework.http.Responseentity <java.util.map <java.lang.string, java.lang.object >> org.springframework.boot.autoconfigure.web.basicerrorcontroller.error (javax.servlet.http.httservletRequest) 2018-03-25 08: 41: 59.584 info 1 --- [Main] Oswshandler Handler de type [classe org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.585 info 1 --- [Main] OSWSHandler.simpleurlLerLermapping org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.645 Info 1 --- [Main] Oswshandler.simpleurlHandlermapping: maphed Url Path [/**/favicon org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.754 info 1 --- [Main] OsjeaannotationMbeanExporter pour SBCETTOMCATEMBEDDEDSERVletContainer: Tomcat Démarré sur les ports (s): 8080 (HTTP) 2018-03-25 08: 41: 59.838 Info 1 --- [Main] com.shuqi.applicationmain: a démarré l'applicationmain en 4.084 secondes (JVM en fonction de 5.012) [2018-03-25 08:41:5910. Commencé avec succès.
Étape 3: Entrez Docker PS pour voir quel port 8080 dans le conteneur est mappé au port local
Commande d'image d'ID de conteneur Créé les ports d'état noms075543f8f5b6 printemps-boot-docker-start "java -jar / printemps ..." il y a environ une minute en hausse environ une minute 0.0.0.0:32768->8080/tcp fiduching_noether
Ce sera certainement le port 32768.
Étape 4: Entrez http: // localhost: 32768 / bonjour dans le navigateur et voyez les résultats
Cela signifie que nous avons consulté avec succès le programme dans le conteneur!
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.