В последнее время контейнеризация стала тенденцией. Сервер может виртуализировать несколько контейнеров и в то же время предоставлять услуги, обмениваться аппаратными ресурсами и экономить затраты. Лидером в контейнеризации является Docker. Все выпуски микросервисов в нашей компании были контейнеры. Spring Boot также следует за трендом и добавляет плагин Docker Maven, который может создавать изображения с помощью команд.
Основное содержание этого раздела - это не код, а об этом плагине Docker. Без лишних слов и зайдите в POM
<blicin> <groupid> com.spotify </GroupId> <ArtifactId> docker-maven-plugin </artifactid> <sersive> 0.4.12 </version> <figureturation> <!-Обратите внимание, что ImageName должно соответствовать регулярному [A-Z0-9-_.], В противном случае сборка не будет успешной-> <!-См. https://github.com/spotify/docker-maven-plugin Invalid repository name ... only [a-z0-9-_.] are allowed--> <imageName>spring-boot-docker-start</imageName> <!--Equivalent to from java, local image is used locally, if not, pull from the remote repository --> <baseImage>java</baseImage> <exposes> <!-разоблачить порт 8080 в контейнере-> <Specose> 8080 </expose> </expose> <!-Введите точку, команда-> <intrintpoint> ["java", "-jar", "/$ {project.build.finalname} .jar"] </intrypoint> <surrousce> <surressacte> <TargetPath> <//argetpath> </argetpath> </argetpath> <//argentpath> <//argetpath> <//arginpath> <//argentpath> <Directory> $ {project.build.directory} </directory> <include> $ {project.build.finalname} .jar </inclust> </resource> </resources> </configuration> </placin> ImageName - это имя изображения. BaseImage - это основное изображение. Если есть локальное изображение, если нет, вытяните его из удаленного репозитория, выставьте порт 8080 в контейнере, выполните команду Java -JAR и запустите микросервис. Мы знаем, что использование Docker требует создания файла DockerFile, а элементы внутри полностью отражаются через теги плагина Maven. Есть еще предпосылка, вы должны сначала установить Docker. На данный момент мы начинаем работать
Шаг 1: Выполните MVN Clean Package Docker: Стройте для создания сгенерированного изображения.
Шаг 2: Запустите зеркало Docker Run -T -П-P Spring-Boot-Docker-Start и проверьте журналы в контейнере
➜ Spring-Boot-Docker-Start GIT: (Master) Docker Run -T -P-P Spring-Boot-Docker-Start. ____ _ __ _ //// ___'_ __ __ _ (_) _ __ __ _ / / / / / (() / ___ | .__ | | _ | | _ | | _/__, | / / / / / ======================================================================================== ApplicationMain по телефону 075543f8f5b6 с PID 1 (/Spring-boot-docker-start.jar, начатый root in /) 2018-03-25 08: 41: 56.287 Информация 1 --- [Main] Com.shuqi.applicationmain: нет активного профиля, от Пада обратно в Проживание Default: Default2018-03-15 08: 416: --- [Main] aTionConfigeMbeddedWebApplicationContext: освежающий org.springframework.boot.context.embedded.annotationConfigembeddedWebApplicationContext@126d28d3: дата запуска [Sun 25 08:41:56 UTC 2018]; Корень контекста иерархия2018-03-25 08: 41: 58,356 Информация 1 --- [Main] SbcettomCatembeddedServletContainer: Tomcat инициализирован с портом (S): 8080 (http) 2018-03-25 08: 41: 58.382 Информация 1- Сервис Tomcat2018-03-25 08: 41: 58.384 Информация 1 --- [Main] org.apache.catalina.core.standardengine: Начальный сервенчный двигатель: Apache Tomcat/8.0.332018-03-25 08: 41: 58,512 Информация 1-[ost-startstop-1]. Инициализация Spring Excedded WebPplicationContext2018-03-25 08: 41: 58.512 Информация 1 --- [OST-StartStop-1] OSWEB.CONTEXT.CONTEXTLOADER: ROOT WEBPPLICATIONCONTEXT: Инициализация завершена в 2113 MS2018-03-25 08: 41: 58.920 Информация 1-[ost-startStop-11] 08: 41: 58.920 1- OSBCembedded.FilterRegistrationBean: картирование Сервлета: 'DispatcherServlet' to [/] 2018-03-25 08: 41: 58.928 Информация 1 --- [ost-startStop-1] osBcembedded.filterRegistrationBean: картирование фильтра: 'Характерна 08: 41: 58.937 Информация 1 --- [ost-startstop-1] osbcembedded.filterRegistrationBean: Картирование фильтра: 'hiddenhttpmethodfilter' to: [/*] 2018-03-25 08: 41: 58.937 Информация 1- Фильтр: 'httpputformcontentfilter' to: [/*] 2018-03-25 08: 41: 58.938 Информация 1 --- [ost-startstop-1] osbcembedded.filterRegistrationbean: картирование: 'requestContextfilter' to: [/*] 2018-03-25 08 08: 41.4-. swsmmarequestmappingHandlerAdapter: ищу @ControllerAdvice: org.springframework.boot.context.embedded.annotationConfigeMbeddwebApplicationContext@126d28d3: дата запуска [Sun 25 08: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 Информация 1 --- [main] swsmmarequestmappingHandLermapping: maped "{[/error], производит = [text/html]}" на публичный org.springframework.web.servlet.modelandView org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpservletrequest, javax.servlet.http.httpservletresponse) 2018-03-25 08: 41: 59. SWSMMArequestmappingHandlermapping: maped "{[/error]}" на публичный 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 Информация 1 --- типа [class org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.585 Информация 1 --- [Main] Oswshandler.simpleurlhandlermapp: нанесенный путь URL [/**] на ручной org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.645 Информация 1 --- [main] oswshandler.simpleurlhandlpap org.springframework.web.servlet.resource.resourcehttprequesthandler] 2018-03-25 08: 41: 59.754 Информация 1 --- [Main] OsjeaAnanotationmbeanexporter: 59.834. SbcettomCateMbeddedServletContainer: Tomcat запустил в порту (S): 8080 (http) 2018-03-25 08: 41: 59.838 Информация 1 --- [Main] Com.shuqi.applicationMain: начал приложение за 4.084 секунды (JVM, запущенный для 5.012) [2018-03-25: 413:41. Начался успешно.
Шаг 3: Введите Docker PS, чтобы увидеть, какой порт 8080 в контейнере сопоставлен с локальным портом
Команда идентификатора контейнера создал порты статуса имена имены 075543f8f5b6 Spring-Boot-Docker-Start "java -Jar /Spring ..." Примерно минута назад около минуты 0.0.0.0:32768->8080/TCP Trusting_noether
Это обязательно будет порт 32768.
Шаг 4: Введите http: // localhost: 32768/hello в браузере и посмотреть результаты
Это означает, что мы успешно получили доступ к программе в контейнере!
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.