Nos últimos tempos, a contêiner se tornou uma tendência. Um servidor pode virtualizar vários contêineres e, ao mesmo tempo, fornecer serviços, compartilhar recursos de hardware e economizar custos. O líder em contêinerização é o Docker. Todos os lançamentos de microsserviços em nossa empresa foram contêineidos. A Boot Spring também segue a tendência e adiciona o plug-in Maven do Docker, que pode criar imagens executando comandos.
O conteúdo principal desta seção não é sobre código, mas sobre este plug -in do Docker. Sem mais delongas, vá para Pom
<Plugin> <PuerpId> com.spotify </frupid> <stifactId> Docker-maven-plugin </ArtifactId> <versão> 0.4.12 </versão <figuration> <!-Observe que o imageName deve cumprir o [a-z0-9-_.], caso contrário, a construção não será bem-sucedida-> <! https://github.com/spotify/docker-maven-plugin nome do repositório inválido ... somente [a-z0-9-_.] são permitidos-> <MageName> Spring-boot-Docker-start </imagename> <!-equivalente a java, a imagem local é usada localmente, se não, se não, para que o Remote do Java, se não, se não, se não, se não, se não, se não, se não, se não, se não, a imagem de java. <Expondo> <!-Exponha a porta 8080 no contêiner-> <Expose> 8080 </SEPOSE> </SEPOSSE> <!-Digite Point, Command-> <Dor EntryPoint> ["Java", "-jar", "Terre-Target> <werning.build.finalname} .Jar"] </sathpoint> <wargation> <wernce> <wernce> <wernce> <wernce> <wernce> <wernce> <wernce> <wernce> <werngE> <werngE> <werngE> <wergath.build.finalname} .Jar. <Directory> $ {Project.build.directory} </diretório> <cluef> $ {Project.build.finalname} .jar </bitird> </Resource> </Resources> </Configuration> </flugin> Imagename é o nome da imagem. BaseImage é a imagem básica. Se houver uma imagem local, caso contrário, retire -a do repositório remoto, exponha a porta 8080 no contêiner, execute o comando java -jar e inicie o microsserviço. Sabemos que o uso do Docker exige a criação de um arquivo do Dockerfile, e os elementos internos são completamente refletidos pelas tags do plug -in maven. Ainda há um pré -requisito, você deve instalar o Docker primeiro. Neste ponto, começamos a correr
Etapa 1: Execute o pacote limpo MVN Docker: Construa para criar uma imagem gerada.
Etapa 2: Inicie o Mirror Docker Run -it -P Spring-Boot-Docker-Start e verifique os logs no contêiner
➜ Spring-Boot-Docker-Start Git: (Master) Docker Run -it -P Spring-Boot-Docker-Start. ____ _ __ _ /// ___'_ __ _ _ (_) _ __ __ _ / / / / / (() / ___ | '_ |' _ | / / / `| / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | .__ | | _ | | _ | | _/__, | / / / / / / ============================================ ___ / = / _ / _ / :: Spring Boot :: (v1.3.5.release) 2018-03-25 08: 41: 56.27.27. ApplicationMain no 075543F8F5B6 com PID 1 (/spring-boot-docker-start.jar iniciado por raiz in /) 2018-03-25 08: 41: 56.287 Info 1 --- [Main] com.shuqi.ApplicationMain: Não se sente em queda, para trás para o default. --- [Main] ATionConfigEmBeddedWebApplicationContext: refreshhing org.springframework.boot.context.embedded.annotationConfigembeddedwebApplicationContext@126d28d3: data de startp [sun mar 25 08:41:56 utc 2018]; root of context hierarchy2018-03-25 08:41:58.356 INFO 1 --- [ main] sbcetTomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)2018-03-25 08:41:58.382 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting Serviço TOMCAT2018-03-25 08: 41: 58.384 Informações 1 --- [Main] org.apache.catalina.core.StandardEngine: Motor de servlet inicial: TomCat/8.0.332018-03-25 08: 41: 58 [512]. Inicializando a primavera incorporada WebApplicationContext2018-03-25 08: 41: 58.512 Info 1 --- [OST-StartStop-1] Osweb.Context.ContextLoader: Root WebApplicationContext: Inicialização concluída em 2113 MS2018-03-25 08: 41: 58.58.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.90. Osbcembedded.FilterRegistrationBean: Mapping Servlet: 'DispatcheserServlet' para [/] 2018-03-25 08: 41: 58.928 INFO 1 --- [OST-S-Startstop-1] Osbcembed. 08: 41: 58.937 Info 1 --- [OST-StartStop-1] Osbcembedded.FilterRegistrationBean: Filtro de mapeamento: 'HiddenHttpMethodfilter' para: [/*] 2018-03-25 08: 41: 58.937 Informações 1-[osta-start-start-1] Filtro: 'httppUtformContentFilter' para: [/*] 2018-03-25 08: 41: 58.938 Info 1 --- [OST-StartStop-1] OsbCembedded.FilterRegistrationBean: Maping Filter: 'requestContextFilter' para: [/*] 2010333330: swsmmarequestmappinghandleratapter: procurando @controlleradvice: org.springframework.boot.context.embedded.annotationConfigembeddedwebapplicationContext@126d28d3: data de start [sol 25 08:41:56 utc 2018]; Raiz do contexto Hierarchy2018-03-25 08: 41: 59.516 Info 1 --- [Main] SwsMmareQuestMappingHandLerMapping: mapeado "{[/hello], métodos = [get]}" em public java.lang.string com.shuqi.controlller.hellocontroller 08: 41: 59.523 Informações 1 --- [Main] SwsMMareQuestMappingHandLerMapping: mapeado "{[/error], produz = [text/html]}" em public org.springframework.web.servlet.modlandView org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpServletRequest, javax.Servlet.http.httpsletResponsonsonsonsone) 2018-03-2500. swsMMareQuestMappingHandlerMapping: mapeado "{[/error]}" para 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-[main] Oswshandler.sers.SimpLURLHURLHURLHURLHURLHURLHURLHURLHURLAPRONGRONGRONGRONDRONGR. handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]2018-03-25 08:41:59.585 INFO 1 --- [ main] oswshandler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.645 Informações 1 --- [main] Oswshandler.SimpleurlHandlerMapping: Mapled Url Path [/**/Favicon.icon.icon.icon.icro. org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.754 Info 1 --- [principal] OSJEAANNOTATIONMBEANEXPORTER: REGISTING FEIR PARA JMX 4080080: sbcettomcatembeddedservletContainer: TomCat Iniciado em portas (s): 8080 (http) 2018-03-25 08: 41: 59.838 Info 1 --- [principal] com.shuqi.ApplicationMain: ApplicationMain iniciado em 4.084 segundos (JVM em execução para 5.0 Começou com sucesso.
Etapa 3: insira o Docker PS para ver qual porta 8080 no contêiner é mapeada para a porta local
Comando de imagem de ID do contêiner portas de status criadas portas de status nomes 075543f8f5b6 Spring-boot-docker-start "java -jar /primavera ..." cerca de um minuto atrás, até um minuto 0,0.0.0:32768- >8080/tcp trusting_noether
Certamente será a porta 32768.
Etapa 4: Digite http: // localhost: 32768/olá no navegador e veja os resultados
Isso significa que acessamos com sucesso o programa no contêiner!
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.