En los últimos tiempos, la contenedores se ha convertido en una tendencia. Un servidor puede virtualizar múltiples contenedores y, al mismo tiempo, proporcionar servicios, compartir recursos de hardware y ahorrar costos. El líder en contenedores es Docker. Todos los lanzamientos de microservicios en nuestra empresa han sido contenedores. Spring Boot también sigue la tendencia y agrega el complemento Maven de Docker, que puede crear imágenes ejecutando comandos.
El contenido principal de esta sección no se trata de código, sino de este complemento Docker. Sin más preámbulos, ve a Pom
<glugin> <MoupRid> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <versión> 0.4.12 </versever> <necuteation> <!-Tenga en cuenta que el nombre de imaginación debe cumplir con el regular [a-z0-9-_.], De lo contrario, la compilación no será exitosa- <! https://github.com/spotify/docker-maven-plugin nombre del repositorio inválido ... Solo [a-z0-9-_.] están permitidos-> <imagename> spring-boot-docker-start </ imagename> <! equivalente de java, la imagen local se usa localmente, si no, tracción del repository remoto-> <susimage> jaVaMage < <exposses> <!-Expose Port 8080 en el contenedor-> <Spose> 8080 </s expose> </s exposses> <!-Ingrese Point, Command-> <NningPoint> ["Java", "-jar", "/$ {Project.Build.FinalName} .JAR"] </EntrinPoint> <Resources> <Ronome> <AtgetPath>/</</</</TargetPath <Directory> $ {Project.Build.Directory} </Directory> <Incluye> $ {Project.Build.FinalName} .JAR </include> </ recursos> </ recursos> </figuration> </tugin> ImageName es el nombre de la imagen. BaseImage es la imagen básica. Si hay una imagen local, si no, extraiga del repositorio remoto, exponga el puerto 8080 en el contenedor, ejecute el comando java -jar e inicie el microservicio. Sabemos que el uso de Docker requiere crear un archivo DockerFile, y los elementos internos se reflejan completamente a través de las etiquetas de complemento Maven. Todavía hay un requisito previo, primero debe instalar Docker. En este punto, comenzamos a correr
Paso 1: Ejecute MVN Clean Package Docker: Build para crear una imagen generada.
Paso 2: Inicie el espejo Docker Run -it -P spring-boot-docker-start y verifique los registros en el contenedor
➜ Git de arranque de boot-boot-boot: (maestro) Docker Run -it -p Spring-Boot-Docker-start. ____ _ __ _ /// ___'_ __ _ _ (_) _ __ __ _ / / / / (() / ___ | '_ |' _ | / / / `| / / / / / / / / / / / / | | | | | | | | | | | | | | (_ |)))))) .__ | | _ | | _ | | _/__, | / / / / / / = ============================================= ___ / = / / _ / _ / :: Spring Boot :: (v1.3.5.5.Release) 2018-03-25 08: 41: 56.274 Información 1 ---- [Main] com. ApplicationMain en 075543F8F5B6 con PID 1 (/Spring-Boot-Docker-Start.Jar iniciado por Root In /) 2018-03-25 08: 41: 56.287 Información 1 ----[Main] Com.Shuqi.AplicationMain: No hay un perfil activo establecido, recaudado a perfiles predeterminados: predeterminado2018-03-25 08: 41: 56. [Main] ationConfigembeddedwebapplicationContext: Refreshing org.springframework.boot.context.embedded.annotationconfigbeddedwebapplicationcontext@126d28d3: Fecha de inicio [Sun 25 de marzo 08:41:56 UTC 2018]; Root del contexto jerarquía2018-03-25 08: 41: 58.356 Información 1 --- [Main] SBCettomCatembeddedServletContainer: Tomcat inicializado con puerto (s): 8080 (HTTP) 2018-03-25 08: 41: 58.382 Info 1 --- [MAIN] O.Apache.Ceore. Servicio de arranque TOMCAT2018-03-25 08: 41: 58.384 Información 1 --- [Main] org.apache.catalina.core.standardengine: motor de servicio inicial: apache tomcat/8.0.332018-03-25 08: 41: 58.512 información 1 --- oststop-1] occc [Tomcat]. : Inicialización de la aplicación web incrustada SpringContext2018-03-25 08: 41: 58.512 Información 1 --- [OST-STARTSTOP-1] OSWEB.Context.ContextLoader: Root WebApplicationContext: Inicialización completada en 2113 MS2018-03-25 08: 41: 58.920 Información 1 --- [Ostartstart-Startstart] OSBCembedded.FilterRegistrationBean: Servlet de mapeo: 'DispatcherServlet' a [/] 2018-25-25 08: 41: 58.928 Información 1 --- [OST-STARTSTOP-1] OSBCembedDed.FilterRegistrationBean: Filtro de mapeo: 'Características: 08: 41: 58.937 Información 1 --- [OST-STARTSTOP-1] OSBCembedDed.FilterRegistrationBean: Filtro de mapeo: 'Hiddenhttpmethodfilter' a: [/*] 2018-03-25 08: 41: 58.937 Info 1 --- [ost-startstop-1] OsbcembeddDeddDeddedded. Filtro de mapeo: 'httpputFormContentFilter' a: [/*] 2018-03-25 08: 41: 58.938 INFORMACIÓN 1 --- [OST-STARTSTOP-1] OSBCembedded.FilterRegistrationBean: Filtro de asignación: 'requestContextFilter' to: [/*] 2018-03-25 08: 41: 59.406 INTO 1 --- [--[--- Main] SWSMMareQuestMappingHandlerAdapter: Buscando @ControllerAdvice: org.springframework.boot.context.embedded.annotationConfigbeddedwebapplicationContext@126d28d3: Fecha de inicio [Sol 25 08:41:56 UTC 2018]; Raíz del contexto Jerarquía2018-03-25 08: 41: 59.516 Información 1 --- [Main] SWSMMAREQUESTMAPPingHandLermapping: Mapped "{[/hola], métodos = [get]}" en el público java.lang.string com.shuqi.controller.hellocontroller.hello () 2018-03-25-25 08: 41: 59.523 Información 1 --- [Main] SWSMMAREQUESTMAPPingHandlermapping: Mapped "{[/error], produce = [Text/Html]}" en público org.springframework.web.servlet.modelandview org. SWSMMAREQUESTMAPPingHandLermapping: Mapped "{[/error]}" en público 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 --- [principal] OsWshandler.simpleurlhandlermapping: mapeado Handler of Tipo [Class org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.585 Información 1 --- [Main] OSWShandler.SimpleUrlHandlermapping: ruta de URL mapeada [/**] en el manejador de tipo [clase [clase org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.645 Información 1 --- [principal] Oswshandler.Simpleurlhandlermapping: Mapped Url Path [/**/favicon.iCo] en el manejo de tipo [Class org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.754 información 1 --- [principal] OsJeaAnnotationMBeanExporter: Información de registro de frijoles para la exposición de JMX en Startup2018-03-25 08: 41: 59.834 Info 1--[Main] [Principal] SBCETTOMCATEMBEDDEDServletContainer: Tomcat comenzó en el puerto (s): 8080 (http) 2018-03-25 08: 41: 59.838 información 1 --- [main] com.shuqi.applicationMain: Aplicación de inicio en 4.084 segundos (JVM en ejecución para 5.012) [2018-03-25 08:41111:59] Comenzó con éxito.
Paso 3: Ingrese Docker PS para ver qué puerto 8080 en el contenedor se asigna al puerto local
Comando de imagen de ID de contenedor Puertos de estado creados Names075543f8f5b6 Spring-Boot-Docker-start "Java -jar /Spring ..." Hace aproximadamente un minuto arriba de aproximadamente un minuto 0.0.0.0:32768->8080/tcp Trusting_Noether
Seguramente será el puerto 32768.
Paso 4: Ingrese http: // localhost: 32768/hola en el navegador y vea los resultados
¡Esto significa que hemos accedido con éxito al programa en el contenedor!
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.